IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Type HASHBYTES SHA1


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2014
    Messages : 261
    Par défaut Type HASHBYTES SHA1
    Bonjour à tous et à toutes

    Je vous explique mon problème, j'ai une procédure stockée qui génére un mot de passe aléatoire (pas de soucis). Je la test avec le HASHBYTES justement de cette maniére :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    declare @newpwd varchar(20)
    exec generationMDP2 @len=8, @output=@newpwd out
    SELECT HASHBYTES('SHA1', @newpwd);
    Et ca me donne en resultat : 0x2A7F6285CDC7EB5D27F9624100A7E577E4FCD534

    Maintenant, j'ai une procédure stocké qui permet de rajouter un utilisateur dans ma base et je fais dans cette procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    declare @newpwd varchar(20)
    exec generationMDP2 @len=8, @output=@newpwd out
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Insert into Identifiants(Nom_identifiant, Mot_de_Passe) values(@Identifiant, HASHBYTES('SHA1', @newpwd));
    Le problème est que dans ma bdd, quand je regarde mon champs Mot_de passe j'ai des choses comme ça : 雒쒔䯀ꠗ恴뭅䣔ᯯ릱

    Du coup je suis content je sais d'où viennent les hiéroglyphes, mais c'était pas le but... I need your help


    Petite précision, si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select mot_de_passe, cast(mot_de_passe as varbinary) from identifiants where id_identifiant = 61
    j'ai bien 0x2980397516E3037FFBAA2B71C7673F9D42CE8C6C qui apparait....

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Quel est le type de données de la colonne Mot_de_Passe ? Je parie sur nvarchar.
    Lorsque vous stockez une valeur de type varbinary sous le type nvarchar, SQL Server exécute une conversion implicite de type de données.
    C'est de là que proviennent les caractères Chinois (Ce ne sont pas des hiéroglyphes )

    @++

  3. #3
    Membre très actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2014
    Messages : 261
    Par défaut
    Oui en effet, c'est du nvarchar... J'ai un peu tout essaye en fait mais surement pas ce qu'il faut...

    Parce que après, (quitte à être dans le bien nul) j'ai dû faire une fonction, pour récupérer le mdp, mais crypté, du coup j'ai fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ALTER function [dbo].[AuthentificationUsers2](@Identifiant varchar(50))
    returns @IdentifiantsUsers table(
    	IdIdentifiant varchar(50),
    	MDP nvarchar(50)
    	)
    as
    	begin
    	insert into @IdentifiantsUsers(IdIdentifiant,MDP)
    		SELECT nom_identifiant, cast(mdp_crypte as varbinary) as MDP FROM identifiants WHERE nom_identifiant= @Identifiant;
    	return
    end
    Mais bon, curieusement, j'ai mes signes Chinois tout mignons dans le champs mdp...

  4. #4
    Membre très actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2014
    Messages : 261
    Par défaut
    C'est marrant mais en mettant le champs mdp en varbinary beh curieusement ca marche... Je dois être un peu stupide, c'est la faute à mes parents

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par JeanYvette Voir le message
    c'est la faute à mes parents
    c'est la faute DE mes parents.

  6. #6
    Membre très actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2014
    Messages : 261
    Par défaut
    Voui je sais

    En tout cas merci d'être passé sur mon post, j'ai pu comprendre mon erreur. Au final mon tuteur ca ne lui plait pas, je me lance donc dans de nouvelles aventures de chiffrement

    Merci et bisous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Obtenir un VARCHAR(40) à partir d'un HASHBYTES SHA1
    Par gderenne dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/07/2007, 19h35
  2. Algorithme hachage type Md5 ou sha1
    Par shaun_the_sheep dans le forum Sécurité
    Réponses: 5
    Dernier message: 22/09/2006, 17h47
  3. Réponses: 2
    Dernier message: 05/06/2002, 12h29
  4. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo