Werte sichern ohne zu exportieren?

redjack

Neues Mitglied
Hallo,
ich bin noch ein ziemlicher Anfänger in Java und wollte jetzt ein Programm zum verwalten von Kontakten und Adressen schreiben. Es soll jetzt zu Anfang nur ein einfaches Konsolenprogramm sein.
Bei der Planung ist mir nur folgendes aufgefallen und ich formuliere nun einfach mal meine Gedanken:
Zuerst dachte ich, dass ich alles in Datensätzen in String-Arrays unterbringen könnte. Ich würde dafür der einfachheitshalber eindimensionale Arrays verwenden, die Inhalte wollte ich entweder per Dialog abfragen lassen oder direkt in der Form eingeben lassen, in der sie auch wieder ausgegeben werden. Sieht dann so aus:

Max Mustermann max@mustermann.de Musterstr.1

Nach meiner Vorstellung sieht es dann ja so aus, dass ich mit dem erstellen von arrays ja nur Platz im Speicher schaffe, der dann nach dem schließen ja wieder freigegeben wird (bin mir nicht sicher, ob da der garbarage collector oder die jvm für zuständig ist). Mit Listen würde ich ja im Prinzip fast das gleiche haben außer, dass sie dynamisch sind (wüde sich ja auch eher anbieten statt einer festen Größe).
Sehe ich das soweit richtig?

So nun meine Frage: Sofern meine Annanhme richtig ist, kann ich das ja nicht programmintern sichern sondern muss eine Datei auslagern, die die Werte speichert. Eine .txt-Datei ist mir da zu unsicher, weil sie zu einfach ausgelesen werden kann und ich generell eine sichere Möglichkeit suche. Mir würden dazu sonst nur noch Datenbanken oder sowas einfallen, aber es gibt doch sicher noch eine Möglichkeit oder?

Sry für die "wall of text", aber ich möchte soweit sichergehen, dass ich alles richtig verstanden habe.
Vielen Dank!
 
Warum ist dir bei so einem Programm eine txt Datei zu unsicher? Wenn jemand das Programm startet kann er doch auch die Adressen sehen 🙂

Ich würde die Daten in einer txt Datei speichern, evtl. auch im csv format.
Alternativ kannst du die Java Serialisierung verwenden, dann hast du beim Laden und Speichern weniger Stress.
 
Auch beim serialisieren kann man die Strings sehen.
Aber es gibt viele möglichkeiten Strings zu verschlüsseln!
z.B.:
Java:
String str = "text";
char[] ca = str.toCharArray();
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 0;i < ca.length;i++){
	list.add(Integer.valueOf(ca[i]));
}
sieht nicht sicherer aus, ist es aber!(einfach mal serialisieren!)
 
Verschlüssel die Daten doch einfach und beim Anmelden in deiner Anwendung muss du dann den Schüssel eingeben um die Daten wieder zu entschlüsseln.
 
Oder ne caesar chiffre 🙂.
oldschool :applaus:

fand die Idee so stark, dass ich das gleich mal gebastelt habe 😉

Java:
private String encryptRot13(String input){
	char c;
	StringBuilder sb = new StringBuilder();
		
	for (int i = 0; i < input.length(); i++) {
		c = input.charAt(i);
		
		if (c >= 65 && c <= 90) {
			if (c + 13 > 90){
				c -= 13;
			} else {
				c += 13;
			}
		} else if (c >= 97 && c <= 122) {
			if (c + 13 > 122){
				c -= 13;
			} else {
				c += 13;
			}
		}
		sb.append(c);
	}
	return sb.toString();
}
 

Neue Themen


Zurück
Oben