Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi AES String einfach ver- und entschlüsseln? (https://www.delphipraxis.net/166700-aes-string-einfach-ver-und-entschluesseln.html)

DelphiPeter 25. Feb 2012 19:23

AES String einfach ver- und entschlüsseln?
 
Hallo zusammen!

Ich weiß ich werde nun virtuell verprügelt, aber ich wollte mal nachfragen, ob mir jemand erklären kann, wie ich kann einfach einen String mittels AES verschlüsseln und entschlüsseln kann.

Wäre super, wenn mir jemand einen Hinweis dazu geben kann.

Grüße
Peter

implementation 25. Feb 2012 20:39

AW: AES String einfach ver- und entschlüsseln?
 
Geht es darum, AES selbst zu implementieren? Oder suchst du eine fertige Bibliothek dazu?

DelphiPeter 25. Feb 2012 20:47

AW: AES String einfach ver- und entschlüsseln?
 
Sagen wir mal so:

Ich will Passwörter abspeichern und das ungerne im Klartext. AES schien mir eine gute Wahl. Mir wäre auch eine Bibliothek oder ähnliches Recht.

ASM 25. Feb 2012 20:50

AW: AES String einfach ver- und entschlüsseln?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von DelphiPeter (Beitrag 1152846)
Wäre super, wenn mir jemand einen Hinweis dazu geben kann.

Unit ElAES.pas (Autor: Alexander Ionov).
Stammt aus 2001, aber funktioniert immer noch perfekt.
ggf. GPL beachten

implementation 25. Feb 2012 21:04

AW: AES String einfach ver- und entschlüsseln?
 
Zitat:

Zitat von DelphiPeter (Beitrag 1152850)
Ich will Passwörter abspeichern und das ungerne im Klartext.

Wenn es wichtig ist, dass du diese Passwörter auch wieder zurückentschlüsseln kannst, mag das eine gute Wahl sein (aber Achtung! Auf keinen Fall den Schlüssel fest einkompilieren!)
Ansonsten speichert man Passwörter aber lieber als Hash (SHA-1, Whirlpool o.ä.) mit variablem Salt ab.

DelphiPeter 25. Feb 2012 21:23

AW: AES String einfach ver- und entschlüsseln?
 
IAES.pas ist super! :-) Danke für eure Hilfe!!!

DelphiPeter 28. Okt 2012 10:55

AW: AES String einfach ver- und entschlüsseln?
 
Ich muss hier nochmal einhaken.

Die Unit verweigert unter Delphi XE3 nun ihren Dienst wenn sie einen String entschlüsseln soll. Verschlüsseln geht ohne Probleme.

Kann mir jemand eine andere ähnlich einfach zu verwendende Unit empfehlen?

Andreas L. 28. Okt 2012 11:02

AW: AES String einfach ver- und entschlüsseln?
 
Das DEC von Hagen Reddman ist in Sachen Verschlüsselung unter Delphi die Eierlegende-Woll-Milch-Sau.

EDIT: Ist auch ganz eifnach zu benutzen:

Delphi-Quellcode:
uses
  ..., DECCipher, DecFmt;

...
...

procedure TForm2.Button1Click(Sender: TObject);
var
  cipher: TCipher_Rijndael;
  s1, s2: String;
begin
  cipher := TCipher_Rijndael.Create;
  try
    cipher.Init('Password');
    s1 := Edit1.Text;
    s2 := cipher.EncodeBinary(s1, TFormat_HEX); //decode für entschlüsseln
    Edit1.Text := s2;
  finally
    FreeAndNil(cipher);
  end;
end;

DelphiPeter 28. Okt 2012 14:06

AW: AES String einfach ver- und entschlüsseln?
 
Hab da mal was versucht "auf die Schnelle" bekomme aber leider eine Fehlermeldung.

Zitat:

[dcc32 Fehler] DECUtil.pas(769): E2250 Es gibt keine überladene Version von 'AddModuleUnloadProc', die man mit diesen Argumenten aufrufen kann
Hier mein Test-Code:
Delphi-Quellcode:
procedure TfmMain.btnDoItClick(Sender: TObject);
var
  cipher: TCipher_Rijndael;
begin
  if rb1.Checked = True then begin
    cipher := TCipher_Rijndael.Create;
    try
      cipher.Init(edkey.Text);
      edDest.Text := cipher.EncodeBinary(edSource.Text, TFormat_HEX); //decode für entschlüsseln
    finally
      FreeAndNil(cipher);
    end;
  end;
end;
Was hab ich verkehrt gemacht?

Andreas L. 28. Okt 2012 16:04

AW: AES String einfach ver- und entschlüsseln?
 
Man kann der Routine keine Felder von Objekten übergeben. Deshalb habe ich im Beispiel-Code auch die Hilfsvariablen s1 und s2 verwendet :wink:

Delphi-Quellcode:
cipher.EncodeBinary(edSource.Text, TFormat_HEX); // falsch
cipher.EncodeBinary(s, TFormat_HEX); // richtig (s = lokale String Variable)
Falls das den Fehler nicht beseitigt: Hast du auch die aktuellste DEC-Version (5.2)? Ist vielleicht noch eine ältere Version im Suchpfad? Alles Updates von Delphi installiert?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz