Aller au contenu

Cryptages


francoisch

Sujets conseillés

bonjour

Quand je crypte manuellement:

- je passe par http://www.ovh.com/fr/espaceclients/outils/crypt_password.pl

- j'obtiens un mot de passe crypté de ce type: bun2/1hNSpkbg (long. 13 car.)

chez cet hébergeur qui crypte en md5.

Quand je crypte en Php avec md5():

- par exemple: md5(toto);

- j'obtiens un mot de passe crypté de ce type: 6c5bc43b443975b806740d8e41146479 (long. 32 car.)

De toute évidence, les deux types de mot de passe ne se ressemblent pas.

J'avais déjà essayé avec crypt(), sans succès.

A votre idée? Par avance merci de votre aide.

Francois

Lien vers le commentaire
Partager sur d’autres sites

Le résultat d'un hash md5, c'est une chaîne de 128 bits (16 octets). Comme ce n'est pas toujours facile à manipuler, en général on encode, soit en hexa (32 caractères), soit en base64 (24 caractères), et probablement quelques autres. Quoi qu'il arrive, ça ne peut pas faire moins de 16 caractères, donc le premier résultat n'est clairement pas un hash md5.

Logiquement, et vu l'utilisation d'une "clef" de 2 caractères et la limite à 8 caractères pour le mot de passe, il doit s'agit du résultat de la fonction crypt qui est à l'origine un hash DES, mais peut suivant les implémentations (et la "clef" passée utiliser d'autres méthodes).

Le principe de crypt est que pour obtenir la version chiffrée, il faut fournir la version "en clair" et la clef, cette clef étant au début de la version chiffrée stockée. Avec DES ce sont les deux premiers caractères de la version chiffrée, avec MD5 ce sera $1$clef$hash, etc. Le système est prévu pour que tu puisses juste faire un truc du genre crypt($passe_clair,$passe_chiffré) == $passe_chiffré pour savoir si le passe_clair est bon.

Qu'est-ce-que tu cherches à faire exactement? Ajouter des mots de passe à un fichier .htpasswd toi-même? Il te suffit de faire un crypt($passe_clair), il va te générer une version chiffrée avec une clef qu'il va choisir tout seul.

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

Merci Jacques de ta réponse.

Oui, je cherche simplement à crypter un mot de passe pour un Htpasswd.

En utilisant crypt(), j'ai eu un mdp crypté de ce type: $1$iPnE3Fv9$Qj06ci.RKBKJbjjXj9Gn7/

Il est aussi très différent du mdp que j'obtiens en cryptant manuellement: bun2/1hNSpkbg (13 car.)

A ton idée?

Merci de ton aide.

Francois

Lien vers le commentaire
Partager sur d’autres sites

Ben le premier est du crypt à la sauce MD5,le deuxième du crypt à la sauce DES. Sur un système un peu récent (qui a moins de 10 ans, quoi) les deux passeront aussi bien l'un que l'autre, la fonction crypt de libc (la libraire système) supportant les deux. Si tu veux vraiment générer un hash à la sauce DES, appelle crypt avec comme deuxième paramètre deux lettres choisies au hasard.

Note que suivant la valeur que tu passes en deuxième paramètre (ou si tu ne passes pas de deuxième paramètre), pour une même valeur du mot de passe en clair, tu obtiendras des valeurs chiffrées différentes, donc ne te dis pas que juste parce que crypt("ton_mot_de_passe") ne donne pas le même résultat ça ne marche pas. Essaie, tu verras bien...

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...