MD5 in 5.24 und 5.70 liefern andere Ergebnisse

Für allgemeine Fragen zur Programmierung mit PureBasic.
Agent
Beiträge: 296
Registriert: 13.09.2004 11:28
Kontaktdaten:

MD5 in 5.24 und 5.70 liefern andere Ergebnisse

Beitrag von Agent »

Hallo.

Mache ich einen Denkfehler (ich vermute es fast), oder warum liefert PB 5.24 einen anderen Hash-Wert bei MD5 als die aktuelle 5.70?

Code 5.24, 32bit:

Code: Alles auswählen

hash$ = "md5fingerprint"

*buf = AllocateMemory(Len(hash$))
PokeS(*buf, hash$)

Debug MD5Fingerprint(@hash$, StringByteLength(hash$))
Debug MD5Fingerprint(*buf, MemorySize(*buf))

FreeMemory(*buf)
Ergebnis: a8589284699515169341c24943dc2e4a

Code 5.70, 32bit:

Code: Alles auswählen


UseMD5Fingerprint()

hash$ = "md5fingerprint"

Debug StringFingerprint(hash$, #PB_Cipher_MD5)
Ergebnis: 1ee00e60057f93d028be5bb501f04b0d


Bild
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: MD5 in 5.24 und 5.70 liefern andere Ergebnisse

Beitrag von RSBasic »

Der Unterschied ist der Zeichensatz.
ASCII (1 Zeichen): 1ee00e60057f93d028be5bb501f04b0d
Unicode (2 Zeichen): a8589284699515169341c24943dc2e4a

Benutze #PB_Ascii, das sollte richtig sein.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Agent
Beiträge: 296
Registriert: 13.09.2004 11:28
Kontaktdaten:

Re: MD5 in 5.24 und 5.70 liefern andere Ergebnisse

Beitrag von Agent »

Servus.

Ich habe unter 5.24 sowohl als ASCII als auch als UNICODE gestartet. Gleiches Ergebnis. Oder hab ich dich falsch verstanden?
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
Agent
Beiträge: 296
Registriert: 13.09.2004 11:28
Kontaktdaten:

Re: MD5 in 5.24 und 5.70 liefern andere Ergebnisse

Beitrag von Agent »

Wenn ich in 5.7

Code: Alles auswählen

UseMD5Fingerprint()

hash$ = "md5fingerprint"

Debug StringFingerprint(hash$, #PB_Cipher_MD5, #PB_Ignore, #PB_Ascii)

starte (also mit #pb_ascii) bleibt das Ergebnis aber gleich o.O
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: MD5 in 5.24 und 5.70 liefern andere Ergebnisse

Beitrag von #NULL »

Code: Alles auswählen

*buf = AllocateMemory(Len(hash$))
Muss man da nicht StringByteLength() verwenden, zumindestens bei Unicode? Bzw. es muss ja der Hash genug Platz haben, was eigentlich nichts mit der Länge des ursprünglichen Strings zu tun hat. Das Beispiel in der Hilfe zu MD5Fingerprint() verwendet einfach AllocateMemory(500).

<edit>ach so, da kommt ja erstmal der ursprüngliche String rein. StringByteLength() wäre trotzdem besser(?)
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
juergenkulow
Beiträge: 188
Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten

Re: MD5 in 5.24 und 5.70 liefern andere Ergebnisse

Beitrag von juergenkulow »

Code: Alles auswählen

;PB 5.70 64bit 
UseMD5Fingerprint()
hash$ = "md5fingerprint"
Debug StringFingerprint(hash$,#PB_Cipher_MD5,0,#PB_Ascii)    ; 1ee00e60057f93d028be5bb501f04b0d
Debug StringFingerprint(hash$,#PB_Cipher_MD5,0,#PB_UTF8)     ; 1ee00e60057f93d028be5bb501f04b0d 
Debug StringFingerprint(hash$,#PB_Cipher_MD5,0,#PB_Unicode)  ; d18833da01fedaa8b340a7f62f1a49ea
ShowMemoryViewer(@hash$,Len(Hash$)*2)
; @hash$: 6D 00 64 00 35 00 66 00 69 00 6E 00 67 00 65 00  m.d.5.f.i.n.g.e.
;         72 00 70 00 72 00 69 00 6E 00 74 00              r.p.r.i.n.t.
MessageRequester("","")
*ptrhash=AllocateMemory(Len(hash$))
PokeS(*ptrhash,hash$,-1,#PB_Ascii)
Debug Fingerprint(*ptrhash,Len(hash$), #PB_Cipher_MD5)    ; 1ee00e60057f93d028be5bb501f04b0d
ShowMemoryViewer(*ptrhash,Len(hash$)+2)
; *ptrhash: 6D 64 35 66 69 6E 67 65 72 70 72 69 6E 74 00 00  md5fingerprint..
Debug Fingerprint(@hash$,Len(hash$)*2,#PB_Cipher_MD5)       ; d18833da01fedaa8b340a7f62f1a49ea
Debug Fingerprint(@"md5fing",14,#PB_Cipher_MD5)             ; a8589284699515169341c24943dc2e4a
MessageRequester("","")
ShowMemoryViewer(@"md5fing",16) ;  6D 00 64 00 35 00 66 00 69 00 6E 00 67 00 00 00  m.d.5.f.i.n.g...
Edit: 3. Parameter von StringFingerprint ergänzt, sowie Parameter Größe bei Fingerprint *2 und Fingerprint(@"md5fing",...
Bitte stelle Deine Fragen, denn den Erkenntnisapparat einschalten entscheidet über das einzig bekannte Leben im Universum.

Jürgen Kulow Wersten :D_üsseldorf NRW D Europa Erde Sonnensystem Lokale_Flocke Lokale_Blase Orion-Arm
Milchstraße Lokale_Gruppe Virgo-Superhaufen Laniakea Sichtbares_Universum
Antworten