Unterschied in SHA512 zwischen Python hashlib und sha512sum Werkzeug
Frage
ich andere Botschaft bin immer verdaut vom linux ‚sha512sum‘ Werkzeug und der Python hashlib Bibliothek.
Hier ist, was ich auf meinem 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'
Beide sollten die Message Digest der Zeichenfolge „test“ berechnen, warum ich unterschiedliche Ergebnisse bin immer?
Lösung
Ich denke, der Unterschied ist, dass Echo ein Newline-Zeichen an seinen Ausgang hinzufügt. Versuchen Sie -n Test echo | sha512sum
Andere Tipps
echo
fügt eine neue Zeile:
$ python -c 'import hashlib; print hashlib.sha512("test\n").hexdigest()'
0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123
Um das zu vermeiden, verwenden Sie echo -n
.
Verschiedene Eingang, verschiedene Ausgabe. Versuchen Sie zu vergleichen wie mit wie:
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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow