Différence de SHA512 entre hashlib python et un outil de sha512sum
Question
Je reçois un message différent Abrégés de l'outil 'sha512sum' linux et la bibliothèque hashlib python.
Voici ce que je reçois sur mon Ubuntu 8.10:
$ echo test | sha512sum
0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123 -
$ python
Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib
>>> hashlib.sha512("test").hexdigest()
'ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff'
Les deux devraient calculer le message condensé de la chaîne « test », pourquoi pensez-vous que je reçois des résultats différents?
La solution
Je pense que la différence est que l'écho ajoute un caractère de nouvelle ligne à sa sortie. Essayez echo -n test | sha512sum
Autres conseils
echo
ajoute un saut de ligne:
$ python -c 'import hashlib; print hashlib.sha512("test\n").hexdigest()'
0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123
Pour éviter cela, utilisez echo -n
.
autre entrée, une sortie différente. Essayez de comparer comme avec comme:
C:\junk>echo test| python -c "import sys, hashlib; x = sys.stdin.read(); print len(x), repr(x); print hashlib.sha512(x).hexdigest()"
5 'test\n'
0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow