Autor Beitrag
daggit
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56



BeitragVerfasst: Mi 10.09.08 23:54 
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
daggit Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56



BeitragVerfasst: 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.
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Do 11.09.08 07:24 
user profile icondaggit hat folgendes geschrieben:
Soweit ich weiss sind .NET DLL's auch nur in .NET anwendungen zulässig.

Nö, stimmt nicht: 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.