Moin!
ich hätte da ne Frage: Wie kann ich Java Dateien verschlüsseln? Also dass man beim dekompilieren nichts mehr erkennt.
MfG
"verschlüsseln" geht schon mal überhaupt nicht ... denn die VM muss den code ja lesen können ... ergo : zur runtime muss es entschlüsselt werden ... und dafür muss es irgendwo un-verschlüsselt eine info geben wie dies abläuft ... und dabei ist es egal ob man direkt einen schlüssel mit nem passenden class-loader findet oder lediglich liest das die daten über einen server laufen ... ergebnis ist gleich : zur runtime liegen die daten un-verschlüsselt im RAM da die VM ja mit arbeiten muss ...
"obfuscation" ... oder auf deutsch : "sicherheit durch unwissenheit" ist eine der wohl meistgenutzen verfahren um etwas zu schützen ... und dennoch ist es gleichzeitig eines der wohl anfälligsten ...
wenn wir dieses prinzip mal nur auf java beschränken kann man nur das gleiche sagen wie oben : es muss zur runtime code zur verfügung stehen mit der die VM etwas anfangen kann ...
natürlich gibt es bei der byte-code obfuscation möglichkeiten die dafür sorgen das z.b. daraus de-compileter source so nicht mehr re-compilebar ist ... oder man nutzt gewisse eigenheiten eines systems aus (unter win z.b. kann man keine datei mit dem namen "aux.class" erstellen ... dafür aber direkt in ein archiv schreiben > kann also nicht entpackt werden um "normalen" de-compilern angriffsfläche zu bieten) ...
grundsätzlich lässt sich aber sagen : das was man aus dem de-compiler code rausbekommt ist zwar SCHWER zu lesen ... aber nicht 100% sicher UNLESBAR ...
grundsätzliche "sicherheit" von daten gibt es so in java nicht ... und auch in keiner anderen sprache die ich kenne ... und es gibt auch genug beispiele im wahren leben die zeigen das sowas nicht wirklich funktioniert ... und trotzdem versuchen und tun es einige ...
um auf deine frage zurückzukommen, ob und wie es möglich ist java-daten so zu editieren das man diese nicht wieder sinnvoll herstellen kann, gibt es eine klare antwort : das geht einfach nicht ... zumindest nicht so lange es eine standard-VM noch ausführen soll