Ist es möglich auf ein passwortgeschütztes Word-Dokument mit Java zuzugreifen, es zu verändern und wieder passwortgeschützt zu speichern?
Den Dokumentzugriff mach ich momentan folgendermaßen:
DataOutputStream out = new DataOutputStream(
new BufferedOutputStream(new FileOutputStream(„ToDoList.doc“, true)));
out.writeUTF(text2);
out.close();
DataInputStream in = new DataInputStream(
new BufferedInputStream(new FileInputStream („ToDoList_Obmann.doc“)));
for (int i = 0; i
Ist es möglich auf ein passwortgeschütztes Word-Dokument mit
Java zuzugreifen, es zu verändern und wieder passwortgeschützt
zu speichern?
was meinst du genau mit „passwortgeschützt“ ? Ist die Datei an sich geschützt oder ist es nur ein word-passwort ? in wie fern willst du die Datei verändern ?
Den Dokumentzugriff mach ich momentan folgendermaßen:
DataOutputStream out = new DataOutputStream(
new BufferedOutputStream(new
FileOutputStream(„ToDoList.doc“, true)));
out.writeUTF(text2);
out.close();
dir ist schon klar das dass kein word-format werden wird ? .doc-dateien enthalten mehr als nur einfachen UTF-text. (z.b. die Addresse des Urhebers mit Telefonnummer…, ein Log aller Änderungen)
DataInputStream in = new DataInputStream(
new BufferedInputStream(new FileInputStream
(„ToDoList_Obmann.doc“)));
for (int i = 0; i
Ist es möglich auf ein passwortgeschütztes Word-Dokument mit
Java zuzugreifen, es zu verändern und wieder passwortgeschützt
zu speichern?
was meinst du genau mit „passwortgeschützt“ ? Ist die Datei an
sich geschützt oder ist es nur ein word-passwort ? in wie fern
willst du die Datei verändern ?
Die Datei soll eine Art ToDoListe für mehrere Benutzer werden. Für jeden Benutzer soll nach Eingabe des Passworts seine Liste geöffnet werden. Der Grund warum ich einen Passwortschutz für das Dokument brauche ist, dass man ein txt File sonst auch direkt aus dem Ordner öffnen könnte. Dies soll verhindert werden.
Verändern heisst in diesem Fall, vor allem neuen Text dranhängen. Löschen von Textteilen wäre auch toll.
Den Dokumentzugriff mach ich momentan folgendermaßen:
DataOutputStream out = new DataOutputStream(
new BufferedOutputStream(new
FileOutputStream(„ToDoList.doc“, true)));
out.writeUTF(text2);
out.close();
dir ist schon klar das dass kein word-format werden wird ?
.doc-dateien enthalten mehr als nur einfachen UTF-text. (z.b.
die Addresse des Urhebers mit Telefonnummer…, ein Log aller
Änderungen)
ist mir klar, aber ich kann es aus Java heraus beschreiben und auch lesen. Das Word-Dokument selbst soll ja auch gar nicht im Word geöffnet werden, obwohl es funktioniert.
Hast du irgendwelche anderen Ideen, wie ich das lösen kann?
DataInputStream in = new DataInputStream(
new BufferedInputStream(new FileInputStream
(„ToDoList_Obmann.doc“)));
for (int i = 0; i
Die Datei soll eine Art ToDoListe für mehrere Benutzer werden.
Für jeden Benutzer soll nach Eingabe des Passworts seine Liste
geöffnet werden. Der Grund warum ich einen Passwortschutz für
das Dokument brauche ist, dass man ein txt File sonst auch
direkt aus dem Ordner öffnen könnte. Dies soll verhindert
werden.
Verändern heisst in diesem Fall, vor allem neuen Text
dranhängen. Löschen von Textteilen wäre auch toll.
ist mir klar, aber ich kann es aus Java heraus beschreiben und
auch lesen. Das Word-Dokument selbst soll ja auch gar nicht im
Word geöffnet werden, obwohl es funktioniert.
Hast du irgendwelche anderen Ideen, wie ich das lösen kann?
Wenn Du das Dokument gar nicht in Word öffnen willst, dann muss es doch keine Word-Datei sein. Verwende daher besser ein Java-eigenes Format. Auf der folgenden Seite findest Du ein Beispiel zur Passwort-Verschlüsselung von Dateien in Java: http://www.ddj.com/documents/s=917/ddj9808n/9808n.htm
Die Datei soll eine Art ToDoListe für mehrere Benutzer werden.
Für jeden Benutzer soll nach Eingabe des Passworts seine Liste
geöffnet werden. Der Grund warum ich einen Passwortschutz für
das Dokument brauche ist, dass man ein txt File sonst auch
direkt aus dem Ordner öffnen könnte. Dies soll verhindert
werden.
Verändern heisst in diesem Fall, vor allem neuen Text
dranhängen. Löschen von Textteilen wäre auch toll.
ist mir klar, aber ich kann es aus Java heraus beschreiben und
auch lesen. Das Word-Dokument selbst soll ja auch gar nicht im
Word geöffnet werden, obwohl es funktioniert.
Hast du irgendwelche anderen Ideen, wie ich das lösen kann?
suma sumarum:
Word ist ein geschütztes nicht frei erhältiches (oder gar dokumiertes) Format. Selbst die Leute von Staroffice haben Monate gebraucht um die Basiseinstellungen zu verstehen. Einfach so UTF Text in der Mitte einfügen wird die Datei höchstens zerstören. Bei passwortgeschützen siehts noch viel schlechter aus.
Speicher mal eine word-Datei die nur ein blank enthält und öffene sie in Notepad, suche das Blank und ändere es in ein einzelnes Zeichen.
ToDo-Listen müssen im allgemeinen nicht formatiert sein (also keine Tabellen). Verschüsseln kann java selber einigermassen über java.security. (RSA + DSA). Allerdings nur public-key, und ziemlich verwirend aufgebaut.
Die Word-Verschlüsselung basierte bis etwa Office 95/97 auf Vigenère. Für den Laien unknackbar, für den Profi eine reine Fingerübung. Da ich annehme dass du einfach nur verschüsseln willst, also nicht unbedingt 256-bit Schüssel brauchts, wärs wahrscheinlich am einfachsten eine Virenère selbst zu programmieren (ist ein 30-40 Zeiler, ziemlich einfach, Beispielcode findet man in Google).
wenn dir Vigenère doch zu komplex ist, java kann auch zipen. Um „sicherheit“ in die Sache zu bringen kanns du ja den Header noch abschneiden, und die Datei .dat nennen. In reinen windows-Umgebungen soll gzip auch was lustiges sein.