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

Administration système Discussion :

[MD5]Hexa ou $1$ ?


Sujet :

Administration système

  1. #1
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut [MD5]Hexa ou $1$ ?
    Bonjour,

    Je vous demande un peu d'aide concernant le MD5. Je ne connais pas trop les mécanismes de génération d'un MD5. Et j'aurai quelques petites questions à ce sujet ^^
    Premier cas, quand je génère un MD5 via PHP ou MySQL, ça me donne un résultat en hexa.
    Par exemple, le mot 'secret' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    mysql> select MD5('secret');
    +----------------------------------+
    | MD5('secret')                    |
    +----------------------------------+
    | 5ebe2294ecd0e0f08eab7690d2a6ee69 |
    +----------------------------------+
    Mais quand j'utilise un MD5 généré par Linux, ca me sors un truc ommençant par $1$ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    root@sd-***:~# userdbpw -md5
    Password:secret
    $1$6NjG3t8G$rl8LR9kxqsuOnkTRCV8wh0
    Pourquoi est-ce différent ??
    Deuxième cas, je suis entrain d'installer un serveur Courier qui utilise une BDD MySQL pour les utilisateurs virtuels. Je stocke mes mots de passes en MD5 Hexa, et Courier nécessite des MD5 $1$. Comment je fais pour les convertir ??

    Merci d'avance de vos réponses.
    Goah Sha Kree

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 131
    Points : 97
    Points
    97
    Par défaut
    Salut,

    J'ai toujours remarqué aussi cette différence suivant les outils qui faisait du MD5. Il me semble que la chaine $1$ permet de répèrer que c'est du MD5, sinon comment le savoir, sans faire la comparaison en partant du principe que c'est du MD5 ... donc ca peut être une optimisation que de vérifier préalablement si la chaine a bien le format MD5.

    Pour ton probleme Courier/mySql, je crois que la seule solution est de stocker le mot de passe au bon format. Je ne sais pas ce que tu utilises comme MTA et comme processus pour créer tes comptes, mais je te propose ceci:

    Postfix (le seul et unique MTA :p) avec Postfix Admin (recherche google), appelé aussi pfadmin.

    Je n'ai jamais eu de problème entre les mots de passe de la bdd et ceux pour courier, etant donné que c'est le PHP qui fait le MD5 et non mysql.

    Sinon, eventuellement, tu peux tricher dans la requete sql:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into tatable password values('$&$' MD5('pwet'));
    Non testé, mais l'idée est là ^^

  3. #3
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    Le md5 qui commence par $1$ c'est du md5 salé (à la BSD). Le salage dépend généralement de l'heure qu'il est, c'est à dire que tu si chiffe un mot de passe à plus d'une seconde d'intervalle tu obtiendras deux hash différents.
    La méthode de vérification du mot de passe est bien entendu plus compliqué qu'avec le md5 "normal".

    Il n'y a à ma connaissance de moyen de convertir l'un vers l'autre car ça reviendrait à casser en partie le MD5.
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

  4. #4
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut
    Salut,

    Citation Envoyé par DjinnS Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into tatable password values('$&$' MD5('pwet'));
    Non testé, mais l'idée est là ^^
    A ce niveau là, ça ne marchera pas... Même en mettant la chaine '$1$' devant, il n'en restera pas moins que le MD5 en hexa restera en hexa et que l'autre a des caractères spéciaux dedans... ^^

    Merci Celelibi pour ces informations. Ca me désole !!!
    Saurai-tu comment est généré le hash salé ?? Je veux dire, est-ce que le hash salé provient d'un md5 hexa, ou est-ce que c'est une méthode totalement indépendante ?
    Goah Sha Kree

  5. #5
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    Il me semble que le salage intervient en plein milieu du processus de hashage. C'est une fonction différente mais avec des bouts de code communs.
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 131
    Points : 97
    Points
    97
    Par défaut
    ET bien merci pour l'explication, j'avoue n'avoir jamais eu l'idée d'aller voir ce que ca impliquai.

    Au moins je me coucherais moins con ce soir !

    Effectivement, ma solution ne tiens pas la route du coup, elle est complètement à oublier.

  7. #7
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut
    OK merci bien pour toutes ces infos. Je vais essayer 2-3 trucs collectés ça et là. Et je reposterai concernant ça, au cas où, ça interesse quelqu'un.
    Je taguerai le post en résolu à ce moment là (même si pas tout à fait ^^)
    Goah Sha Kree

  8. #8
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut
    J'ai finalement réussi à obtenir un élément de réponse.

    En fait, c'est plus un salt crypt de md5 que du md5...
    Si tu prend la chaîne : $1$6NjG3t8G$rl8LR9kxqsuOnkTRCV8wh0
    Les $ sont en faite des balises permettant de séparer les paramètres.
    Le premier paramètre, ici 1, indique que la fonction de hash utilisée est MD5 (1->md5, 2a->blowfish)
    Le second paramètre, ici 6NjG3t8G, indique la chaîne de salt.
    Le dernier paramèter, ici rl8LR9kxqsuOnkTRCV8wh0, est résultat du cryptage.

    J'ai réussit à obtenir ce même résultat en utilisant la fonction PHP :
    Un exemple :
    chaine = string
    sel = $1$salt
    cryptage = crypt("string", "$1$salt") = $1$salt$zQ85DZwaOPzoVL57BgVNP0

    Donc, c'est un crypt de MD5 ou un truc du genre...
    Goah Sha Kree

  9. #9
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut
    Par contre, ça ne résoud toujours pas mon problème de reconnaissance des mots de passes encrypté en MD5 par Courier-MTA...
    Goah Sha Kree

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

Discussions similaires

  1. MD5, convertion hexa en char/string
    Par mindofbuild dans le forum C
    Réponses: 4
    Dernier message: 14/08/2010, 14h01
  2. [C#] A propos de MD5
    Par ensisoft dans le forum ASP.NET
    Réponses: 7
    Dernier message: 09/03/2004, 21h15
  3. C# Socket MD5
    Par borgfabr dans le forum Développement
    Réponses: 4
    Dernier message: 08/03/2004, 09h37
  4. [langage] conversion décimal vers hexa
    Par chipster dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2004, 16h05
  5. [débutant] conversion int en hexa
    Par sergoid dans le forum C++Builder
    Réponses: 6
    Dernier message: 16/05/2003, 11h11

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