Hallo,
ich verwende
Indy zur Kommunikation mit einem Webserver.
Der Webserver verlangt Digest-Authentication und
Indy hat dafür ja die Klasse
TIdDigestAuthentication.
In dieser Klasse wird zur Berechnung des Hashes MD5 verwendet, was in der Klasse
TIdHashMessageDigest5 implementiert ist.
Jetzt mal unabhängig davon, dass MD5 nicht mehr als sicher gilt, ist der Algorithmus als solcher ja standardisiert und
es sollte bei verschiedenen Komponenten, die Hash-Klassen anbieten, doch dann immer der gleiche Hash rauskommen, oder?
Jedenfalls benutze ich auch DEC6 und wenn ich mir da den MD5-Hash des gleichen Ausgangswertes mit der Klasse
THash_MD5 geben lasse,
bekomme ich einen anderen Hash-Wert als bei
Indy.
Delphi-Quellcode:
lMD5_Indy := TIdHashMessageDigest5.Create;
try
sValue := lMD5_Indy.HashStringAsHex('Testwert');
finally
lMD5_Indy.Free;
end;
lMD5_DEC := THash_MD5.Create;
try
sValue := lMD5_DEC.CalcString('Testwert', TFormat_HEX);
finally
lMD5_DEC.Free;
end;
Hashwert bei
Indy: B089896DDE61B804B603F7866A9D664B
Hashwert bei
DEC: 7C94514A886400F144C1B2FF80854F33
Welche Erklärung kann es dafür geben?