Entwickler-Ecke

Algorithmen, Optimierung und Assembler - String SHA1 Hashen


matze - Sa 21.03.09 14:17
Titel: String SHA1 Hashen
Hallo.

Ich verwende in meinen Programmen eine kleine Unit mit dem Namen "md5.pas" um Dateien und Strings mit MD5 zu hashen.
Da MD5 ja nicht mehr so ganz toll ist, würde ich gerne auf SHA1 oder andere sichere Hashes umschwenken und dabei gerne den Komfor wie bei der MD3 Unit behalten. Da ging das mit hash := md5print(md5string('bla'));

Wie kann ich denn einfach und mit wenigen Zeilen Code einen String und eine Datei mit SHA1 oder besser hashen?

Danke,
Matze


Martok - Sa 21.03.09 15:09

Ich nutze immer ganz gerne das DEC vom Hagen/negaH. Gabs mal bei Luckie einen Mirror, der sollte entweder hier oder in der DP zu finden sein ;)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var h: THash_SHA1;
begin
  h:= THash_SHA1.Create;
  try
    h.Init;
    while not Data.eof do
      h.Calc(Data.GiveMeAChunk,Data.ThisChunkSize)
    h.Done;
    result:= h.DigestStr(TFormat_HEX);
  finally
    h.Free;
  end;
end;

Keine Garantie für nix, müsste aber funktionieren ;)

EDIT: für strings geht das sogar noch einfacher.


Delphi-Quelltext
1:
Hash:= THash_SHA1.CalcBinary(String, TFormat_HEX);                    

;)


matze - Fr 27.03.09 08:00

Danke. Das werde ich mal ausprobieren.