Hallo,
ich habe heute eine Implementierung für md5 geschrieben. Die Sprache (Blitzbasic) ist nicht groß bekannt und ich bezweifle, dass es bereits fertige Programme in dieser Sprache gibt.
Als der Algorithmus fertig war, hab ich zum Testen den Hashwert einer Nachricht der Länge 0, also md5("") generiert.
Aber anstatt d41d8cd98f00b204e9800998ecf8427e (Wikipedia) kam 227b7f48d21283f63bc9bbc15b44ea1a heraus!
Die Nachricht der Länge 0 wird auf 512 bit vergrößert, wobei das erste Bit eine 1 ist, und alle anderen 0. Ist das richtig soweit?
Danach wird der eine Block verarbeitet.
Am Anfang gilt:
a = 0x67452301
b = 0xefcdab89
c = 0x98badcfe
d = 0x10325476
hinterher läuft 64 Mal die Hauptschleife darüber.
Hat jemand einen funktionierenden Algorithmus und kann mir die 64 Zwischenergebnisse nennen?
Ich könnte dann den Fehler eingrenzen.
Gruß onnie
ich habe heute eine Implementierung für md5 geschrieben. Die Sprache (Blitzbasic) ist nicht groß bekannt und ich bezweifle, dass es bereits fertige Programme in dieser Sprache gibt.
Als der Algorithmus fertig war, hab ich zum Testen den Hashwert einer Nachricht der Länge 0, also md5("") generiert.
Aber anstatt d41d8cd98f00b204e9800998ecf8427e (Wikipedia) kam 227b7f48d21283f63bc9bbc15b44ea1a heraus!
Die Nachricht der Länge 0 wird auf 512 bit vergrößert, wobei das erste Bit eine 1 ist, und alle anderen 0. Ist das richtig soweit?
Danach wird der eine Block verarbeitet.
Am Anfang gilt:
a = 0x67452301
b = 0xefcdab89
c = 0x98badcfe
d = 0x10325476
hinterher läuft 64 Mal die Hauptschleife darüber.
Hat jemand einen funktionierenden Algorithmus und kann mir die 64 Zwischenergebnisse nennen?
Ich könnte dann den Fehler eingrenzen.
Gruß onnie
Comment