Entwickler-Ecke

Algorithmen, Optimierung und Assembler - DES-Verschlüsselung mit Delphi


Timelesk - Di 04.04.06 20:52
Titel: DES-Verschlüsselung mit Delphi
Hallo,

ich habe schon einige Themen zur DES-Verschlüsselung gelesen und auch auf den verschiedensten Seiten gesucht, aber leider kein brauchbares Beispiel/keinen brauchbaren Code gefunden.

Ich möchte gerne ein PHP-Script nach Delphi umsetzen.
Da aber im PHP-Script die DES-Verschlüsselung benutzt wird, hänge ich nun fest:


Quelltext
1:
$crypted = mcrypt_ecb(MCRYPT_DES, $key, $text, MCRYPT_DECRYPT, $key);                    


Ich habe schon DEC 5.1c von Michael Puff heruntergeladen, kann aber damit irgendwie nicht viel anfangen. Bekomme die Demos nicht zum laufen und finde keine anderen Beispiele.

Auch die Komponente TDESCrypt habe ich mir installiert, kann aber auch damit keine Erfolge verzeichnen, da ich ja keinen Salt habe und dort einen Salt angeben muss.

Gibt es vielleicht eine brauchbare Unit oder DLL oder einfach ein gutes Beispiel für die DEC-Units (von Hagen Redmann)?

Ich entwickle mit Delphi 2006 prof


Vielen herzlichen Dank

gruß
Timelesk


Timelesk - Fr 07.04.06 14:35

Weiß da wirklich keiner etwas?

Schade...


mkinzler - Fr 07.04.06 15:04

In der Komponenetnsammlung LockBox [http://sourceforge.net/projects/tplockbox] von TurboPower gibt es verschiedene Verschlüsselungskomponenten.


Matthes19 - Fr 07.04.06 15:17

Schau mal unter http://www.cityinthesky.co.uk/cryptography.html da gibt es verschiedene Verschlüsselungsroutinen. U.a. auch DES.


Timelesk - So 09.04.06 10:13

Hi,

nach längerem Suchen im DEC 5.1c hab ich es nun gestern Mittag endlich hinbekommen:


1. Benötigt werden die Units CRC, DECCipher, DECData, DECFmt, DECUtil

2. Im Hauptformular dann unter uses den DECCipher einfügen

3.

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:
procedure TForm1.Button1Click(Sender: TObject);
var
  cryption: TCipher_1DES;
begin
  cryption := TCipher_1DES.Create;

  try
    //Key muss 8 Zeichen lang sein und IV glaub genauso lang; Ich hab beidesmal den selben String drinn stehen
    //Hier im Beispiel sind se verschieden...
    cryption.Init('key_abcd','iv_abcde');
    
    //Methode festlegen: cmECBx, cmCBCx, cmOCBx, cmCFBx
    cryption.Mode := cmECBx;
    
    //Text verschlüsseln
    edit2.text := cryption.EncodeBinary(Edit1.Text);
    
    //Text entschlüsseln
    //edit2.text := cryption.DecodeBinary(Edit1.Text);
  finally
    cryption.Free;
  end;
end;