Moin!
Aha.
| Compiler hat folgendes geschrieben: |
[Warnung] SHA1.pas(98 ): Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[Warnung] SHA1.pas(103): Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[Warnung] SHA1.pas(122): Konstantenausdruck verletzt untere Grenzen
[Warnung] SHA1.pas(123): Konstantenausdruck verletzt untere Grenzen
[Warnung] SHA1.pas(125): Konstantenausdruck verletzt untere Grenzen |
Gut sieht anders aus, finde ich.
MagicRain hat folgendes geschrieben : |
| ich würde gerne einen String mit SHA1 verschlüsseln doch leider habe ich keine Ahnung wie ich die Unit an wenden /kann/soll/muss... |
Dazu fehlen ein paar Funktionen, die das Handling etwas vereinfachen. Ich habe mal das hier dazugetan:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| function SHA1Print(const Digest: TSHA1Digest): AnsiString; var i: Integer; const Digits: array[0..15] of AnsiChar = '0123456789abcdef'; begin SetLength(Result, 40); for i := 0 to 19 do begin Result[i*2+1] := Digits[(Digest[i] shr 4) and $F]; Result[i*2+2] := Digits[Digest[i] and $F]; end; end;
function SHA1String(const M: AnsiString): TSHA1Digest; var Context: TSHA1Context; begin SHA1Init(Context); SHA1Update(Context, PAnsiChar(M), Length(M)); SHA1Final(Context, Result); end; |
dann kannst du damit so arbeiten:
Delphi-Quelltext
1:
| Edit2.Text := SHA1Print(SHA1String(Edit1.Text)); |
Unicode-Versionen sind nach Belieben selbst abzuleiten.
cu
Narses
There are 10 types of people - those who understand binary and those who don´t.