Pourquoi mon hachage de ligne de commande est-il différent des résultats de hachage MD5 en ligne?


21

Sur un Mac OS X v10.5 (Leopard) PowerPC, si je le fais:

écho "bonjour" | md5
sur la ligne de commande, le résultat est:

b1946ac92492d2347c6235b4d2611184

Mais si j'entre bonjour dans l'un des sites de hachage MD5 en ligne comme http://md5online.net/ , j'obtiens:

5d41402abc4b2a76b9719d911017c592

Est-ce que je fais quelque chose de mal? Si je veux utiliser MD5 lors de mes déplacements, comment puis-je m'assurer que ce que j'obtiens sur la ligne de commande sera en accord avec les outils md5 en ligne?


Fonctionne pour moi sur Windows avec Total Commander créant la somme de contrôle MD5. Identique à la version en ligne.
Snark

Merci, Snark. Rudedog a résolu le problème lors de l'utilisation de md5 sur la ligne de commande, au moins pour les systèmes POSIX. Donnez-lui un +1 si vous le pouvez. Je suis trop nouveau.
pellea72

Réponses:


40

Lorsque vous faites écho à partir de la ligne de commande, md5 calcule la somme de 6 caractères - h, e, l, l, o plus la nouvelle ligne. Le texte que vous entrez dans un site Web n'a pas de nouvelle ligne.

Essayez de faire

echo -n hello | md5

et cela vous donnera ce que vous attendez. Le -n indique à echo de ne pas sortir de nouvelle ligne.


Oups. Je n'ai pas remarqué la balise '-n'. Tu as raison Rudedog. Ça a marché. Merci.
pellea72

3

Vous pouvez également utiliser printf au lieu de echo, ce qui supprime automatiquement le caractère de nouvelle ligne:

printf hello | md5

Ou même:

printf "hello" | md5

2

b1946ac92492d2347c6235b4d2611184 est le md5 de la chaîne uniquement

hello

5d41402abc4b2a76b9719d911017c592 est le md5 de

hello

CR + LF

CR + LF est la nouvelle ligne de Windows.


1

Pour ajouter mes 5 cents et étendre la réponse: sous Linux, ce n'est pas md5, c'est md5sum, alors vous devriez faire:

echo -n hello | md5sum
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.