# jar-Datei to Source-Code?



## :-) (21. Feb 2007)

Hallo,

ich schreibe gerade ein Verschlüsselungsprogramm. Deshalb würde mich interessieren, ob man eine jar-Datei in den Sourcecode zurück umwandeln kann, sodass der Algorythmus sichtbar werden würde?

Hat jemand eine Idee, ob das geht?


----------



## hupfdule (21. Feb 2007)

ja, geht. Stichwort dekompilieren.
Aber wenn dein Verschlüsselungsprogramm geknackt werden kann, sobald jemand den Algorithmus sieht, dann taugt der Algorithmus nichts. Security by Obscurity funktioniert nicht.

edit: Rechtschreibfehler korrigiert.


----------



## The_S (21. Feb 2007)

1. Mit nem Entpacker deiner Wahl die Daten aus der Jar extrahieren
2. Die class Dateien mit einem decompiler deiner wahl wieder zurück in Source-Code verwandeln


----------



## WieselAc (21. Feb 2007)

Ein Stichwort wäre in diesem Zusammenhang: Obfuscator


Wobei die Teile den decomplierten Code nur etwas "verkomplizieren"  und gegebenfalls sogar verlangsamen.


----------



## The_S (21. Feb 2007)

Was haben Obfuscator mit dem dekompilen von class Dateien zu tun? :shock:


----------



## WieselAc (21. Feb 2007)

Er will doch anscheinend seinen code "verstecken". Von daher hat hat das indirekt was damit zu tun.


----------



## The_S (21. Feb 2007)

Ich glaube er will Daten verschlüsseln und möchte sich dazu den Source-Code eines anderen Java-Programms anschauen, dass die Daten auf gleiche/ähnliche Weise verschlüsselt.

[edit] Äh, ich glaube du hast Recht  .

Wie schon hupfdule sagte, ist es bei einem guten Verschlüsselungs-Algorithmus egal ob man ihn kennt oder nicht. Alles andere ist Pillepalle!


----------



## WieselAc (21. Feb 2007)

ok, im dem Fall ntzt ihm das natürlich rein garnichts. aber wenns andres rum wäre....


----------



## WieselAc (21. Feb 2007)

Falls er nochmal auftaucht, dann kann er uns ja sagen was er will


----------



## :-) (21. Feb 2007)

Hallo und vielen Dank,

was ich will: Ein "einfaches" Programm, das Text (ASCII) verchlüsselt. Zum Beispiel Emailtexte. Der Algorythmus muss nicht super gut sein, sondern nur so gut, dass der Aufwand zu groß ist und die Zeit zu schade, um den Text zu verarbeiten.

Ich benute das RSA-Verfahren und habe festgestellt, dass es für kleine Primzahlen nutzlos ist und für große ist mir der Rechenaufwand zu groß. Wie gesagt es soll "einfach" und schnell funktionieren, es muss nicht super sicher sein.

Deshalb habe ich an eine Kombination gedacht: 5-stellige Primzahlen gekoppelt mit einer komplexen Transformation. Damit könnte ein Hacker auch mit meinem PublicKey die Nachricht nicht lesen, es sei den er würde sich die Mühe machen das Programm zu besorgen, zu dekompilieren und dann selbst eins schreiben, das die Transformation rückgängig macht. Und das für wertlose Emails. Das ist die Mühe eigentlich nicht wert.

Ach ja, wie man merkt, eigentlich habe ich von Kryptographie keine Ahnung. Aber ich hatte Zeit und Lust mal einen Tag (heute) rumzuspielen und meine Mails dann "vielleicht" nicht mehr im Klartext zu verschicken 

So, Kritik bitte  Und gute Ideen, wenn jemand eine hat.


----------



## moormaster (21. Feb 2007)

Wenn die Emails sowieso wertlos sind... wieso verschlüsselst du sie dann erst? Wenn sich in deinen E-Mails nichts interessantes findet, dann ist doch auch schon die Zeit zu schaden, das alles im Klartext zu lesen oder nicht?


----------



## Wildcard (21. Feb 2007)

Warum verwendest du nicht die Verschlüsselungs Mechanismen die Java bietet?
Btw: In der Praxis verwendet man in der Regel eine (sehr viel schnellere) synchrone Verschlüsselung. Der Schlüssel wird beigelegt und mit einem asynchronen Verfahren (wie RSA) verschlüsselt.


----------



## :-) (21. Feb 2007)

Ehrlich gesagt nur so aus Spaß. Damit die bösen sich die Mühe machen müssen es zu entschlüsseln, wenn sie wissen wollen was drin steht.

Und du hast recht eigentlich es die Mühe nicht wert, es sei den es geht ganz schnell. Eshalb hat meine Oberfläche nur zwei buttons: Decode und EncodeClipboardFor. Ich kopiere also eine Mail ins Clipboard, drücke einen Knopf und kopiere es zurück in die Mail. Wenns so schnell geht mach ich es gern 

Java... Verschlüsselung? Wo? wie heißt die Klasse und wie geht das? Hab ich in meinem Buch nicht gefunden? Und wie funktioniert das mit dem Schlüssel mitschicken? Genial! Mehr info bitte... bitte!!!


----------



## Wildcard (21. Feb 2007)

Die Java Security API (in der J2SE enthalten):
http://java.sun.com/javase/technologies/security/index.jsp
btw: wenn's dir um mails geht, dafür gibt's schon fertige (sichere) Lösungen.
Zum Beispiel GnuPG mit Thunderbird und dem Enigmail Plugin.


----------



## hupfdule (21. Feb 2007)

Also wenn es dir nur darum geht, dass deine Emails nicht im Klartext verschickt werden, dann nimm doch besser eine existierende Lösung, wie GnuPG oder PGP. 
Wenn es dir darum geht, ein wenig mit Verschlüsselung herumzuspielen, dann nur zu. Aber mal so eben schnell ist das nicht gemacht. Das ist schon ein komplexes Thema. Wie das bei GnuPG/PGP funktioniert kannst du im OpenPGP Standard sehen.


----------



## :-) (21. Feb 2007)

Das stimmt. Aber ich hätte gerne ein kleines niedliches Programm, dass ich auch auf meinem USBStick laufen lassen kann.

Kannst du mir noch sagen, wie das mit dem verschicken vom synchronen Schlüsseln in einer Nachricht funktioniert? Dafür brauche ich doch wieder RSA und wenn der zu leicht zu knacken ist, nützt mir das doch wieder nichts oder?


----------



## Wildcard (21. Feb 2007)

Der verschlüsselte synchrone Schlüssel wird einfach in die mail gepackt.
Natürlich brauchst du wieder RSA, der Grund warum man Nachrichten oft nicht komplett asynchron verschlüsselt (sondern eben nur den synchronen Schlüssel) ist der hohe Rechenaufwand. Wenn dein synchroner Schlüssel lang genug ist, ist er auch sicher, aber wenn du wirklich was sicheres willst solltest du definitiv bestehende Lösungen oder die Java Security API verwenden.
Alternativ kannst du auch TrueCrypt für den USB Stick nehmen, dann musst du allerdings deinen Text als Dateianhang verschicken.


----------

