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 :

cryptage en MD5 des mots de passes en base sql server 2005 'jeu de caractères'


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 15
    Points
    15
    Par défaut cryptage en MD5 des mots de passes en base sql server 2005 'jeu de caractères'
    Bonjour,
    après avoir consacré une journée à résoudre problème je me redirige vers vous espérant trouver une aide.
    Je vous explique mon problème:
    je voudrais arriver à crypter les mots de passe en MD5. pour cela, j'ai essayé pas mal de scripts sans succès.
    par exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE mtd_utilisateur
        SET mot_passe = HashBytes('MD5', mot_passe)
    j'obtiens avec cela un MDP crypté d'une manière bizarre(des carrés et des caractères spéciaux) en tout cas pas du md5 que je connais!
    J'ai essayé de changer l'encodage de la table plusieurs fois, pas de bol...

    Je vous remercie d'avance de vos réponses.

  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 : 42
    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
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    J'ai essayé de changer l'encodage de la table plusieurs fois
    Ceci me fait penser que vous stockez le résultat dans une colonne de type n(var)(char), et que vous vous êtes amusé à changer la collation de la colonne ...

    Comme décrit dans la documentation, la fonction HASHBYTES retourne un varbinary d'une longueur maximale de 8000 octets.
    Donc si votre colonne n'est pas du type varbinary, cela ne peut pas fonctionner.

    Ensuite les collations servent à changer la méthode de tri lorsque vous utilisez, par exemple, un ORDER BY sur une colonne dont le type est l'un des types chaîne de caractères de SQL Server.

    Le type (var)char vous permet de stocker tous les caractères de l'alphabet latin et les chiffres arabes.
    Le type n(var)char vous permet de stocker tous ceux-ci, plus les caractères autres que ceux de l'alphabet latin.
    En aucun cas ces deux types vous permettent de stocker des hexadécimaux.

    Pour la 3e fois aujourd'hui sur ce forum, choisissez le type de données adéquat !

    @++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 15
    Points
    15
    Par défaut données binaires au lieux du MD5
    Hello,
    Merci beaucoup de votre réponse
    encore une question!
    quand je change le type de données en varbinary(50) ou MAX, j'obtiens <données binaires > et je ne peux pas visualiser mon haché

    pour vérifier l'authentification, je compare le MD5 que je génère en JS et le MD5 de ma base.
    le problème est que je ne visualise pas mon MD5 en base, et quand je rentre un utilisateur en ligne de commande avec la fonction de hachage, ça donne toujours <données binaires> dans le champs mot_pass.

    encore merci d'avance de votre réponse.

  4. #4
    Membre averti
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Points : 439
    Points
    439
    Par défaut
    salut, si ton champ est en varbinary tu dois avoir un truc du genre 0x344d23333b45c345d...
    Bref de l'hexa.

    Tu as deux solutions, le convertir coté application je ne sais pas quelle langage tu utilises mais c'est souvent assez simple.
    Sinon tu peux le convertir depuis SQL SERVEUR avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select CONVERT(varchar(max),HASHBYTES('MD5','TEST'),2)
    Voila, si tu n'as plus de questions pense au tag

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    ça marche toujours pas!
    J'ai essayé sur mysql c'est très simple!
    mais je galère encore sur sql server. quand mon champs est en varbinary j'ai <données binaires> dans ma table au lieu de 0x344d23333b45c345d...
    et quand je fait convertir un varchar, j'ai toujours des caractères spéciaux

    une aiiiide please!!!!
    et merci d'avance

  6. #6
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    n'essayez pas de 'voir' vos hashage dans SQL SERVER... Récupérez le dans votre langage client.
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 15
    Points
    15
    Par défaut
    j'ai trouvé la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    update mtd_utilisateur
    set mot_passe = cast(sys.fn_VarBinToHexStr(hashbytes('MD5','motpass')) as varchar(100))
    espérant que ça va servir pour quelqu'un d'autre!

    Et merci de vos réponses

    Khaled.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/06/2009, 08h55
  2. [Base SQL SERVER 2005] Mot de passe
    Par Potus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 10/06/2009, 16h55
  3. Réponses: 1
    Dernier message: 16/05/2008, 17h58
  4. Réponses: 1
    Dernier message: 08/02/2007, 21h21
  5. [J2EE/JSP] Gestion des erreurs avec une base SQL server 2005
    Par critok dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/04/2006, 16h57

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