Einzelnen Beitrag anzeigen

StarFire_

Registriert seit: 8. Nov 2007
Ort: Schiers
4 Beiträge
 
#1

[Perl][Delphi] Unterschiedliche Verschlüsselung (RC6)

  Alt 9. Nov 2007, 07:24
Hallo Welt,

Ich möchte meine Daten, die in Delphi als Resourcen eingebunden sind, vor dem Kompilieren verschlüsseln und zur Laufzeit wieder entschlüsseln. Als Algorithmus habe ich RC6 gewählt, da dieser schon anderweitig im Projekt verwendet wird.

Die Daten, die als Resourcen eingebunden werden, verschlüssle ich mit Perl (ActivePerl), mit dem Modul Crypt::RC6 von cpan:

Code:
#
# Create RC6 cipher
$cipher = new Crypt::RC6 $password;

#
# Read data, encrypt them and write them back
while ($readLen = read(CLEAR_FILE, $fileBuf, 16)) {
  if ($readLen < 16) {
    $fileBuf = pack("a16", $fileBuf);
  };
  $encryptedData = $cipher->encrypt($fileBuf);
  print ENC_FILE $encryptedData;
};
Beide Dateien sind mit binmode geöffnet worden. Auf der Delphi-Seite verwende ich den RC6 aus der DEC Komponente:
Delphi-Quellcode:
decAlg := TCipher_RC6.Create();
try
  decAlg.Init(password);
  Result := decAlg.DecodeBinary(sText);
finally
  decAlg.Free();
end; // try - finally
Das Problem: Ich kann die Daten in Delphi nicht mehr entschlüsseln. Überprüft habe ich:
  • Passworte: Beide identisch (32 Bytes)
  • Anzahl Runden bei der Verschlüsselung: bei beiden 20
  • Blockgrösse: bei beiden 16 Bytes

Was mache ich falsch, bzw. an welchen Stellen muss ich was ändern? Ist mein Padding in Perl falsch? Muss ich Delphi noch etwas setzen?

Gruss SF
  Mit Zitat antworten Zitat