Verschlüsseln eines Ordners oder einer Datei mit Java?
Ich möchte gerne mit einem Java Code einen Ordner oder Datei verschlüsseln, z.B. unter Windows E:/Beispielordner/Beispieldatei oder entsprechender Linux Ordner.
Leider kenne ich nur Code, die Text verschlüsseln. Wie kann ich den Code ändern, sodass stattdessen Ordner und Dateien verschlüsselt werden. Mich hat der Ehrgeiz gepackt, aber an dieser Stelle weiß ich nicht weiter. Wer kann helfen?
https://javawebandmore.wordpress.com/2013/03/29/die-casar-verschlusselung-in-java/
2 Antworten
Für einen Computer ist alles im weitesten Sinne Text.
static void enc throws IOException(FileInputStream in, FileOutputStream out, int key){
while(in.available()!=0)out.write((in.read()+key)%0x100);//Spülen nicht vergessen
}
Caesar-Verschlüsselung ist allerdings absolut nutzlos, wenn der Angreifer weiß, was ein byte ist.
Ich glaube ich hätte es nicht "lustig" gefunden, wenn ich das nicht gewusst hätte, aber Danke trotzdem.
Gruß
Das erinnert mich an Homer und den Kalender:
Verstehe ich nicht,
verstehe ich nicht,
verstehe ich nicht,
mhhhh versteh ich nicht
Danke aber wo definiere ich den Pfad für den Ordner oder die Datei? Hier: E:/Beispielordner
Lies' die APIdoc zu FileInputStream bzw. FileOutputStream.
Du hast zwei Möglichkeiten. Entweder du fragst alle Datein im Ordner ab und verschlüsselst die einzeln- http://www.tutorialspoint.com/java/io/file_listfiles.htm
Oder du ZIPst den Order davor um eine Datei mit der ganzen Ordersturktur zu haben und verschlüsselst die dann. https://stackoverflow.com/questions/15968883/how-to-zip-a-folder-itself-using-java#15969453
Wenn du allerdings eine andere Bitlänge als 8 verschlüsselst, dann wird das Ganze möglicherweise interessant.
Da gibt es mit Sicherheit verschiedene Ansätze. Ich habe so etwas selber noch nie gebraucht.
Aber eine Idee könnte sein, dass Du ein Archiv des Ordners erstellst (Java unterstützt das ZIP Format). Das Ergebnis behältst Du im Speicher (d. h. du schreibst den Stream nicht irgendwo auf die Festplatte) und gehst im Anschluss hin und verschlüsselst das mit RSA. Ich weiß nicht was die Bibliothek genau braucht, aber du kannst den Stream ja wahlweise in ein ByteArray oder String umwandeln. Das ist ja das schöne an Streams.
Den Kommentar "Spülen nicht vergessen" finde ich ja irgendwie gut.