Fragen zu ZIP-File

beta20

Top Contributor
Hallo,

ich habe folgendes vor:

Export:
1) Dateien (.xml - Dateien) in einem ZIP-File zusammen zu packen
2) Das ZIP-File mit einem Passwort zu versehen
3) Das ZIP-File mit der Datei-Endung ".abc" zu speichern.

Import:
1) Datei einlesen (also z.B. "meineDatei.abc") nach Eingabe des richtigen Passworts
2) Die gespeicherten Dateien sollen im ZIP-Archiv geöffnet werden -> also nicht direkt auf die Festplatte speichern (ist das möglich?)
3) Inhalt von den XML-Dateien soll ausgelesen werden.

Ist das möglich?
Kann jemand helfen, ob das realisierbar ist?
 

VirtualIndex

Aktives Mitglied
Also zuallererst hat das Einlesen und Schreiben der XML keinen erhöhten Schwierigkeitsgrad. Es ist wie bei jeder anderen Textdatei auch.

Java bietet eine Klasse namens ZipOutputStream, diese hat in der Standardimplementierung jedoch keinen Passwortschutz. Du wirst also auf eine Bibliothek von anderen zurückgreifen müssen, damit dein ZIP einen Passwortschutz besitzt.

Ansonsten ist dein Vorhaben sicherlich möglich und relativ leicht, sofern du Erfahrung mit dem IO-Package von Java hast, also folglich mit dem Lesen und Schreiben von Dateien (Input- und Outputstream).
 

knilch

Bekanntes Mitglied
Hi,
Wie VirtualIndex geschrieben hat sollte das schon möglich sein.. habs aber so noch nicht gemacht..
Aber zuerst, die API von Java (http://www.oracle.com/technetwork/articles/java/compress-1565076.html) ermöglicht das zippen, aber ohne Password.
Diese Library kannst du brauchen, wenn du ein ZIP mit Password benutzen möchtest: http://www.lingala.net/zip4j/
Mit Dialog (Swing dialog oder FX-Dialog) kannst du vor dem zippen ein Dialog für die Eingabe für das Password erstellen.
Dann werden die Dateien gezippt.
Beim Einlesen wird zuerst ein Dialog, in welchem das Password eingegeben wird, einblendet, dann wird die zip-Datei mit dem Password enpackt (in einen Temporären Ordner) und dann weiterverarbeitet... z.B. parsen der xml-Dateien..
 

VirtualIndex

Aktives Mitglied
Generell möchte ich an dieser Stelle das Konzept in Frage stellen. Dies sollte man übrigens ständig tun. Kein Konzept, egal von welcher Firma oder Person, ist perfekt. Erst, wenn man genauer darüber nachdenkt und es nicht blind anwendet, kann man Ecken und Kanten entdecken und ausbessern!

Wenn du uns ausführlicher beschreibst, was das Ziel am Ende sein soll, also wofür du es braucht, und wieso du so vorgehen möchtest, können wir dir besser helfen @beta20.

In sehr vielen Fällen lassen sich so konzeptionelle Schwächen finden oder zumindest Verbesserungen tätigen.

Einige Grundüberlegungen hierzu also:
a) Was genau möchtest du in deinem Fall für Daten schützen, also wofür dienen sie?
b) Wieso brauche ich eine eigene Dateiendung wie .abc?
c) Wer ist der Feind?
(Otto-Normalbenutzer, Menschen, die dir ggf. nicht gut gesonnen sind, fortgeschrittene Computerbenutzer, Informatiker, Hacker oder Cracker?)
 

beta20

Top Contributor
Hallo,
zunächst vielen Dank für die Antworten.

Anbei eine Beschreibung für was ich es brauche:
-> Ich habe eine Web-Anwendung, die sich ein Nutzer auf seinem PC installiert. (Läuft im JBoss, nutzt MySQL usw.). Ich liefere also ein .war - File aus.

In dieser Web-Anwendung brauche ich 2 Funktionen:
1. Export
2. Import
_____________
Export:
1) Ich möchte ein Backup meiner Webanwendung machen lassen können (von einem User). Der User soll keinen Zugriff direkt auf die DB haben und ich will es auch vermeiden, dass anwendungsspezifische Daten der User einfach sieht, die er nicht unbedingt sehen soll, daher :
-> Button klicken und ein Backup - File wird generiert.

2) Als Export lässt sich sicherlich dazu XML anbieten. Die Idee ist, dass ich für jede Entity (Auto, Reifen etc. z.B.) eine XML-Datei anlege, in der ich dann die Objekte der DB speichere.

3) Damit der User keinen direkten Zugriff auf die XML-Dateien, möchte ich das Backup-File (also das ZIP-File) speichern, aber mit einer anderen Dateiendung, sodass der User nicht gleich darauf kommt, dass es ein ZIP-File ist.

4) Zur weiteren Sicherheit möchte ich dann das ZIP-File ebenfalls mit einem Passwort versehen. Das Passwort weiß nur ich und ist hart in meiner Anwendung codiert.

5) Wichtig ist erst mal die DB zu sichern. Im zweiten Schritt kann man dann noch ein Komplett - Backup machen mit den Bildern, die jemand hochgeladen hat. Also sprich die Bilddateien / Ordner werden ebenfalls in der ZIP-Datei gespeichert
_________
Import:
Nun soll diese Datei aber wiederum eingelesen werden und die Objekte, die in den XML-Dateien stecken eingelesen und wiederum in die DB gespeichert werden.


Ein Swing Dialog o.ä. brauche ich demnach nicht, das Passwort steht wie gesagt direkt im Anwendungs Code. Mir ist klar, dass jemand das auch hacken kann - es ist aber erst Mal ein Schutz.



Habt ihr weitere Ideen / Ratschläge - was könnte man besser machen?
 

Bitfehler

Bekanntes Mitglied
Ich habe eine Web-Anwendung, die sich ein Nutzer auf seinem PC installiert. (Läuft im JBoss, nutzt MySQL usw.). Ich liefere also ein .war - File aus.

Eine Verständnisfrage:
Der eine(?) Anwender greift auf einen JBoss zu, der auf einer anderen Maschine läuft oder der Anwender betreibt den JBoss/MySQL auf seinem PC und greift dann darauf zu?
 

Bitfehler

Bekanntes Mitglied
Zum Sichern der DB solltest du den dafür vorgesehene Befehl des DBMS verwenden. Das erzeugte File, meist ein SQL_File, wird dann im Filesystem liegen und du kannst es anschließend aus deinem Programm ja so modifizieren, dass es ein zip mit Passwort ist. Dieses Backup kann dann zum Wiederherstellen der Datenbank verwendet werden, wenn man das Passwort dafür kennt. Da der Anwender ja aber das gleiche Filesystem verwendet, kann er es eventuell eigenständig löschen.

---Anmerkungen---
Dann startet der Anwender wahrscheinlich auch den JBoss, beispielsweise nach einem Neustart des PC, um dies zu tun, muss er Zugriff auf den JBoss haben und hat so zudem wahrscheinlich auf Zugriff auf die Datenbank, die ja im Filesystem seines PC liegt. Von daher kommt er wahrscheinlich sowie so an die Datenbank dran, sodass der ganze Schutz wahrscheinlich nicht richtig greifen wird.

Da stehen so viele wahrscheinlich drin im Text, da ich mir nicht sicher bin, welche Rechte die Anwendung im Minimalfall benötigen und ob eine Trennung möglich ist. (Das kann sogar je OS vareren.)

Des Weiteren hat es gewisse Vorteile, wenn das Backup nicht auf dem Anwendungsserver(=Hardware) liegt. Fällt dieser aus(bspw. Hardwaredefekt), dann musst du nicht nur die Anwendung neu installieren, es sind auch deine Backups weg.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R 2 Fragen wegen File Java Basics - Anfänger-Themen 14
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
H Fragen zu Wrapperklassen Java Basics - Anfänger-Themen 29
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
A Bei VierGewinnt fragen ob man gegen CPU oder Menschen spielen will. Java Basics - Anfänger-Themen 7
A Bei VierGewinnt vorher fragen, ob man gegen den Computer spielen möchte oder gegeneinander. Java Basics - Anfänger-Themen 1
A Bei VierGewinnt fragen, ob man gegen den Computer spielen möchte oder gegeneinander Java Basics - Anfänger-Themen 1
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
E Bäume/ allgemeine Fragen Java Basics - Anfänger-Themen 21
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
S Diverse Fragen vor Schulaufgabe ;) Java Basics - Anfänger-Themen 4
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
C 3 Fragen rund um Klassenattribute Java Basics - Anfänger-Themen 8
L Erste Schritte Log4J Fragen Java Basics - Anfänger-Themen 5
NeoLexx Fragen zu diversen Elementen der Javabibliothek Java Basics - Anfänger-Themen 5
D Budget Manager fragen zur Umsetzung Java Basics - Anfänger-Themen 9
N Fragen zur Datenspeicherung Java Basics - Anfänger-Themen 45
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
CT9288 Fragen zu Java Java Basics - Anfänger-Themen 16
W Fragen zu Generics Java Basics - Anfänger-Themen 14
T ObjectInput/OutputStream Fragen zur Funktionsweise Java Basics - Anfänger-Themen 3
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
H Java Quereinsteiger Roadmap und Fragen Java Basics - Anfänger-Themen 29
H fragen Java Basics - Anfänger-Themen 15
M Samelsarium Grundlegender Fragen 2 Java Basics - Anfänger-Themen 9
M Sammelsarium an Grundlagen Grundlagen Fragen Java Basics - Anfänger-Themen 11
B Java ist / wird kostenpflichtig. Ein paar Fragen Java Basics - Anfänger-Themen 1
J Fragen zu synrchonized und kritischen Abschnitten Java Basics - Anfänger-Themen 5
S Fragen zu einem Rechentrainer Java Basics - Anfänger-Themen 2
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
J Wo kann man Fragen zu ireport stellen. Java Basics - Anfänger-Themen 0
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
D Fragen zur Klassen Java Basics - Anfänger-Themen 4
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
J Interface Fragen bezüglich "Sauberkeit" von Code Java Basics - Anfänger-Themen 5
D Objekte-Fragen Java Basics - Anfänger-Themen 1
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
Azazel Ein paar Fragen zu Methodenaufrufen(java.awt) Java Basics - Anfänger-Themen 2
S Erste Schritte Fragen zur For-Schleife Java Basics - Anfänger-Themen 9
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
C Fragen zum Spigot Plugin (1.8) Java Basics - Anfänger-Themen 6
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
L fragen zu arrays Java Basics - Anfänger-Themen 8
L Fragen zu selbstgeschriebenem Programm Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
S Fragen zu Ausdrücken&Bedingungen Java Basics - Anfänger-Themen 5
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
H grundlegende Fragen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
N Programm: Fragen beantworten Java Basics - Anfänger-Themen 6
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
D Rekursion Allgemeine Fragen Java Basics - Anfänger-Themen 2
D [Fragen] zu Methoden Java Basics - Anfänger-Themen 2
S Fragen zur Implementierung eines Binärbaums Java Basics - Anfänger-Themen 3
T Ein paar Fragen zu OOP und Java. Java Basics - Anfänger-Themen 16
J Allgemeine Fragen zur GUI Java Basics - Anfänger-Themen 1
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
DStrohma Grundsätzliche Fragen zu Drag & Drop Java Basics - Anfänger-Themen 1
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
S 3 Fragen, Verzeichnis, GridLayout psoitionieren, Werte für JSpinner Java Basics - Anfänger-Themen 2
T Fragen zu Set / Relationen verknüpfen Java Basics - Anfänger-Themen 4
S 2 Fragen Java Basics - Anfänger-Themen 4
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
N Java Fragen... Java Basics - Anfänger-Themen 10
F ExecutorService Fragen! Java Basics - Anfänger-Themen 2
O HashMap Fragen Java Basics - Anfänger-Themen 8
C Fragen zu Arrays Java Basics - Anfänger-Themen 19
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
S Fragen zur Implementierung eines Adressbuches Java Basics - Anfänger-Themen 20
S Fragen zu Arrays Java Basics - Anfänger-Themen 6
K Diverse Fragen zum Fehlerlogging Java Basics - Anfänger-Themen 9
N StringReader - Fragen Java Basics - Anfänger-Themen 8
C Einige Fragen zu Frames Java Basics - Anfänger-Themen 7
M Erste Schritte Allgemeine Fragen Java Basics - Anfänger-Themen 4
PaulG Fragen zu Binärbaum Java Basics - Anfänger-Themen 21
P Methoden Aquarium (Fragen zum Scanner) Java Basics - Anfänger-Themen 5
T Erste Schritte Fragen zu meinen kleinen Programm Java Basics - Anfänger-Themen 9
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
O Zwei Fragen zu Methoden Aufrufen Java Basics - Anfänger-Themen 5
B fragen zur for-schleife und arrays Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben