Seite 1 von 1
Warum immer Fehler bei MD5
Verfasst: Samstag 30. Oktober 2010, 19:02
von MalcolmYoung
Warum bekomme ich hier:
immer das:
Code: Alles auswählen
TypeError: Unicode-objects must be encoded before hashing
Re: Warum immer Fehler bei MD5
Verfasst: Samstag 30. Oktober 2010, 19:15
von Hyperion
Naja, die Fehlerbeschreibung ist doch fast selbsterklärend. Du benutzt Python 3.x, richtig?
Dort sind Strings Unicode-Objekte. hashlib kann aber nur mit Bytes umgehen. Also musst Du einfach den String encodieren:
Code: Alles auswählen
>>> text = "Hallo".encode("utf-8")
>>> type(text)
<class 'bytes'>
Dann sollte es klappen.
Re: Warum immer Fehler bei MD5
Verfasst: Samstag 30. Oktober 2010, 19:51
von MalcolmYoung
Ja, danke
aber jetzt hab ich folgendes als ausgabe:
<md5 HASH object @ 01D4BC00>
wie bekomm ich NUR den hashwert
Außerdem kann das gar nicht der hashwert sein
Re: Warum immer Fehler bei MD5
Verfasst: Samstag 30. Oktober 2010, 20:14
von Hyperion
Schaust Du auch mal in die Doku richtig rein? Da steht es doch:
http://docs.python.org/py3k/library/hashlib.html
Anscheinend kann man String-Literale auch direkt codiert als Bytes angeben - war mir neu, da ich bisher kaum mit Python gearbeitet habe.
Re: Warum immer Fehler bei MD5
Verfasst: Samstag 30. Oktober 2010, 20:21
von MalcolmYoung
Re: Warum immer Fehler bei MD5
Verfasst: Samstag 30. Oktober 2010, 20:55
von Jerry
Code: Alles auswählen
>>> import hashlib
>>> hashlib.md5(b'Im ersten Beispiel steht wie es funktioniert').digest()
b"\x90\x97'\x82\xd7\xbe\xae\xda\xfd)\xb4\x9ep\xc1\xf4\x92"
>>> hashlib.md5(b'Im zweiten Beispiel steht wie es funktioniert').hexdigest()
'90972782d7beaedafd29b49e70c1f492'
Gruß, Dennis
Re: Warum immer Fehler bei MD5
Verfasst: Samstag 30. Oktober 2010, 22:41
von Hyperion
MalcolmYoung hat geschrieben:
Also normal versteh ich die Doku ja...
Aber da blick ich echt net durch???
Da kann ich nicht helfen - imho ist das große Beispiel alleine schon selbsterklärend... Jerry hat dieses letztlich nur leicht modifiziert hier gepostet. Das kann Dir folglich auch nicht helfen
