Autor Beitrag
MagicRain
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Mi 08.08.12 17:38 
Hey 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...

Das ist die Sha1 unit scheint recht gut zu sein bloß wie kann ich jetzt da mit einen String hashen und in einem Edit ausgeben ?

www.koders.com/delph...0BABAC9E52BD5AE.aspx

Bei MD5 geht das ja zb mit Edit2.text := StrMD5('Test')...Danke für hilfe!

MfG

Moderiert von user profile iconTh69: Code- durch URL-Tags ersetzt
Moderiert von user profile iconNarses: Topic aus Algorithmen, Optimierung und Assembler verschoben am Mi 08.08.2012 um 22:37
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 08.08.12 21:55 
Moin!

user profile iconMagicRain hat folgendes geschrieben Zum zitierten Posting springen:
Das ist die Sha1 unit scheint recht gut zu sein
[...]
www.koders.com/delph...0BABAC9E52BD5AE.aspx
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. :nixweiss:

user profile iconMagicRain hat folgendes geschrieben Zum zitierten Posting springen:
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:
ausblenden 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:
//******************************************************************************
// Create hex representation of given Digest
function SHA1Print(const Digest: TSHA1Digest): AnsiString;
  var
    i: Integer;
  const
    Digits: array[0..15of AnsiChar = '0123456789abcdef';
begin
  SetLength(Result, 40);
  for i := 0 to 19 do begin
    Result[i*2+1] := Digits[(Digest[i] shr 4and $F];
    Result[i*2+2] := Digits[Digest[i] and $F];
  end;
end;

//******************************************************************************
// Create digest of given Message
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:

ausblenden 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.

Für diesen Beitrag haben gedankt: rizla