Einzelnen Beitrag anzeigen

dschiffler

Registriert seit: 25. Okt 2006
30 Beiträge
 
Delphi 10.4 Sydney
 
#1

MD5 - Unterschiede zw. Indy und DEC6

  Alt 19. Mär 2024, 11:37
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?
Liebe Grüße
Dirk Schiffler
  Mit Zitat antworten Zitat