[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’ :

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$ :

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.

hello,

Source linuxfr :

[quote]Non! Mysql conserve dans ses tables système (mysql.user) le md5 du mot de passe, en revanche, linux conserve dans /etc/shadow un md5 du crypt du mot de passe (cf le man de crypt :[…] crypt is the password encryption function. It is based on the Data Encryption Standard algorithm with variations intended[…]). Il me parait donc difficile de synchroniser les deux. Pour info, Mysql dispose de la fonction ENCRYPT(str[,salt]) qui devrait t’être plus utile ;-P.

En revanche, tu peux éviter la synchro en utilisant un module pam (genre sourceforge.net/projects/pam-mysql/(… :wink:) pour réaliser l’authentification linux directement sur le serveur mysql :slightly_smiling: Moi je le fait avec le module pam-lda, ca marche bien et ca soulage beaucoup la gestion des utilisateurs (va voir sur mon blog pour un tuto, à adapter pour mysql).[/quote]

Merci de ta réponse. Cependant, je m’étais déjà tourné vers PAM pour gérer l’authentification d’utilisateurs virtuels sur VsFTPd. Mais il m’est apparu impossible de gérer les mots de passes md5 avec la version de PAM que j’avais d’installée…
Cf, un post sur dédibox-news
Je ne suis jamais parvenu à paramétrer PAM pour qu’il gère le md5 !
Merci de tes indices…

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…

Par contre, ça ne résoud toujours pas mon problème de reconnaissance des mots de passes encrypté en MD5 par Courier-MTA…