Entwickler-Ecke

Sonstiges (Delphi) - Delphi + Java Verschlüsselung (3DES)


daggit - Mi 10.09.08 23:54
Titel: Delphi + Java Verschlüsselung (3DES)
Moin,

ich benötige für ein Projekt eine Verschlüsselung von sensiblen Daten. Bisher habe ich meine Daten meist mit TripleDES verschlüsselt. Mein Problem ist nun, dass einige Teile des Projektes in Java umgesetzt sind und die ver- und entschlüsselung natürlich ich beiden Sprachen funktionieren muss. Ich habe zwar in beiden Teilen diverse Crypt-Librarys, allergins kommt beim verschlüsseln unterschiedliche Werte herraus. Sprich meineverschlüsselungen in der beiden Sprachen sind nicht kompatibel.

In Delphi verwende ich das Delphi Encryption Compendium und dort die Cipher_3DES Typen ect.. Hat jemand einen Tipp? Oder gibbts andere Librarys für Delphi?

Ich habe auch schon mit den .NET apis experimentiert. Das Ergebnis ist mit Java kompatibel. Da meine Delphianwendung aber keine .NET-Anwendung ist, kann ich die APIS nicht verwenden. Habe auch schon versucht eine .NET DLL anzulegen und diese aus meiner normalen Win32-Anwendung anzusprechen. Dies scheint aber nicht zu funktionieren, da sich die Methoden nicht aufrufen lassen. Soweit ich weiss sind .NET DLL's auch nur in .NET anwendungen zulässig.

Bin für Tipps und Ratschläge dankbar :)


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 11.09.2008 um 01:05


BenBE - Mi 10.09.08 23:59

Kannst Du mal schauen, ob sowohl in deiner Java-Anwendung wie auch der Delphi-Anwendung die gleichen Session-Schlüssel verwendet werden? Das DEC erzeugt nämlich bei Direkteingabe über eine Passphrase ein randomisierten Hash des Passwortes. Um das zu Umgehen, und den RAW-Key zu übergeben, muss man das explizit sagen.

Ansonsten wäre etwas Source hilfreich.


daggit - Do 11.09.08 01:21

habe mal ein bischen samplecode beigefügt.
In Java verwende ich DESede (24byte Key) und und zum erstellen des Keys die dafür vorgesehene klassen (DESedeKeySpec). Die angegebenen keys sind auf beiden Seiten identisch.

Delphi-Quelltext
1:
2:
3:
cipher := TCipher_3TDES.create();
cipher.Init(key);
RESULT := cipher.EncodeBinary(str, TFormat_MIME64);


Habe auch schon diverse Modis ausprobiert.

Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt


Bernhard Geyer - Do 11.09.08 07:24
Titel: Re: Delphi + Java Verschlüsselung (3DES)
user profile icondaggit hat folgendes geschrieben:
Soweit ich weiss sind .NET DLL's auch nur in .NET anwendungen zulässig.

Nö, stimmt nicht: http://www.managed-vcl.com/

Ich tipp mal eher darauf das der unterschied darin begrünged ist das bis Delphi 2009 ein Character 1 Byte groß ist und unter .NET/Java 2 Bytes (UTF-16). Schreib deinen Text mal in einen WideString und betrachte diesen als Stream.