Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Delphi entschlüsseln, was mit Java verschlüsselt wurde O.o


Pseudo - Di 14.08.12 17:06
Titel: Delphi entschlüsseln, was mit Java verschlüsselt wurde O.o
Hallo,
ich hab ein etwas komisches Problem O.o,
den ich muss mit Delphi einen String decrypten der mit Java verschlüsselt wurde...
Ich weiss, dass das absolut bescheuert ist, ist aber jetzt halt mal so!
Ich hoffe hier kann jemand ein bisschen java...

Also, da ich nich viel von Java verstehe (mein Freund hat die Verschlüsselung geschrieben...) die Verschlüsselungsart ist:
"PBEWithMD5AndDES"
und das Passwort weiss ich ;D

Kann man das mit Delphi decrypten?
Wenn ja, wie?
Danke für die Hilfe!

P.S: Ich hab kein Frum gefunden in dem ich Java und Delphi Programmierer vereinen... Sorry


Th69 - Di 14.08.12 18:02

Hallo Pseudo,

mit welcher Sprache etwas verschlüsselt wurde, spielt keine Rolle, sondern mit welchem Verschlüsselungsalgorithmus (z.B. AES, DES, Twofish, ...), s.a. http://de.wikipedia.org/wiki/Symmetrisches_Kryptosystem

Dafür bietet sich z.B. die TurboPower LockBox 2 & 3 Cryptographic Library for Delphi [http://sourceforge.net/projects/tplockbox/] an.

Was aber genau "PBEWithMD5AndDES" sein soll, weiß ich jetzt auch nicht...

Edit: aber das Internet weiß es: scheint eine spezielle Umsetzung bei Java zu sein.
Unter http://www.example-code.com/delphi/crypt2_PBEWithMD5AndDES.asp gibt es wohl eine Umsetzung für Delphi (evtl. brauchst du dann die obige Crypto Lib dann nicht mehr), ansonsten such einfach mal nach "PBEWithMD5AndDES Delphi"...


Pseudo - Di 14.08.12 18:35

Leider funktioniert das auf der Seite nicht...
Und google gibt nichts nützliches aus, ich kann also nur hoffen, dass hier jemand die Verschlüsselung kennt (die werden vermutlich keine eigene Verschlüsselung entwickeln) und mir sagen kann was für eine Mischung das ganze is...
Schade :(
Aber danke für die Hilfe :D


Th69 - Di 14.08.12 18:51

Hallo,

hast du denn das ActiveX dort auf der Seite heruntergeladen (Pfeil links neben "Download Chilkat Crypt ActiveX")?


Pseudo - Di 14.08.12 19:03

Ja, hab ich... Es funktioniert trotzdem nicht...

(Und müsste dann jeder, der meine Software nutz das auch runterladen?)


Ralf Jansen - Di 14.08.12 20:04

Zitat:
(Und müsste dann jeder, der meine Software nutz das auch runterladen?)


Nein. Du müsstest aber Chilkat kaufen.


vagtler - Mi 15.08.12 11:48

user profile iconPseudo hat folgendes geschrieben Zum zitierten Posting springen:
Ja, hab ich... Es funktioniert trotzdem nicht... [...]

Gehörst Du auch zu den Entwicklern, die sich über Benutzer aufregen, die keine vernünftigen Fehlerbeschreibungen geben?


Delete - Mi 15.08.12 14:53

user profile iconPseudo hat folgendes geschrieben Zum zitierten Posting springen:
... mein Freund hat die Verschlüsselung geschrieben ...


Na dann frag doch einfach deinen Freund, wie er das gemacht hat ...


Delphi-Laie - Sa 18.08.12 19:40

user profile iconPseudo hat folgendes geschrieben Zum zitierten Posting springen:
die Verschlüsselungsart ist:
"PBEWithMD5AndDES"


Das ist mit Sicherheit keine Verschlüsselung(sart, eher -algorithmus, -methode, -verfahren), sondern mit großer Wahrscheinlichkeit das Ergebnis der Verschlüsselung.

user profile iconPseudo hat folgendes geschrieben Zum zitierten Posting springen:
und das Passwort weiss ich ;D


Es geht also darum, den Verschlüsselungsalgorithmus (bzw. die Verschlüsselungsmethode) anhand des Verschlüsselungsergebnisses und des Paßwortes zu ermitteln, nicht wahr? Eine fürwahr seltene Aufgabenstellung, ist wohl als Sport und Herausforderung gedacht.

Ob vom informationstheoretischen Standpunkt genug Ausgangsinformationen vorliegen, diese Aufgabenstellung zu lösen, bin ich mir unsicher und habe meine Zweifel, bestärkt noch durch die Kürze des Strings. Sogar, wenn die kompletten Ausgangsinformationen (unverschlüsselter String), Schlüssel und verschlüsselter String vorliegen, bin ich mir nicht sicher, ob der dahinterstehende Algorithmus sicher ermittelt werden kann.

Analogie (ob sie übertragbar ist, weiß ich nicht): Gibt ein Algorithmus bei jeder Eingabe einer Menge natürlicher (ganzer) Zahlen offensichtlich den größten gemeinsamen Teiler der Zahlen aus, so ist dennoch nicht in jedem Falle sicher feststellbar, ob das auf der Basis des Euklidschen Algorithmus' oder doch auf der Basis der Primfaktorisierungen beruht.


jfheins - Sa 18.08.12 19:46

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconPseudo hat folgendes geschrieben Zum zitierten Posting springen:
die Verschlüsselungsart ist:
"PBEWithMD5AndDES"

Das ist mit Sicherheit keine Verschlüsselung(sart, eher -algorithmus, -methode, -verfahren), sondern mit großer Wahrscheinlichkeit das Ergebnis der Verschlüsselung.

Falsch geraten. Wie man mit Hilfe von [präferierte Suchmaschine einsetzen] herausfinden kann, handelt es sich um die Kurzfassung der Algorithmen.

PBEWithMD5AndDES steht also für "Password based Encryption with MD5 and DES", MD5 und DES sollten ja bekannt sein. Es wird wohl das Passwort mit MD5 gehasht und dann als Eingabe für DES verwendet. Diese Verkettung sollte ohne Probleme in Delphi machbar sein.

Vielleicht noch zum lesen: http://docs.oracle.com/javase/1.4.2/docs/guide/security/jce/JCERefGuide.html


Ralf Jansen - Sa 18.08.12 19:49

rfc2898 [http://www.ietf.org/rfc/rfc2898.txt]


Delphi-Laie - Sa 18.08.12 19:51

Dann besteht die Verschlüsselungs"art" also eher darin, eine seriöse und ausreichend lange Bezeichnung auf eine kryptische Stummelbezeichnung zu reduzieren.


Boldar - Mo 20.08.12 22:34

Naja, der Name ist doch wohl offensichtlich eine Prozedurbezeichnung, die der TE im Java-Code gefunden hat und als solche schon lang und aussagekräftig genug.