java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java - Programmierung > Allgemeine Java-Themen

Allgemeine Java-Themen Allgemeine Themen, die nicht in andere Fachforen und nicht zu den Java Basics passen

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 20.04.2012, 14:35   #1 (permalink)
Stammbenutzer
Kilobyte
 
Registriert seit: 03.03.2009
Fachbeiträge: 129
Abgegebene Danke: 8
Erhielt 1 Danke für 1 Beitrag
Standard Nur Teile einer Datei symetrisch Verschlüsseln

Hallo,
ist es irgendwie möglich nur Teile einer Datei symetrisch zu verschlüsseln? Wie man grundsätzlich verschlüsselt / entschlüsselt ist mir klar. (wird z.B. heir erklärt => https://wiki.imise.uni-leipzig.de/Themen/JavaSecurity)
Das Problem ist nun aber, dass ich folgende Daten habe:
wert1,wert2,wert3,wert4,id //in jeder Zeile

Ich möchte nun einen key Erstellen(ist klar wie an sich).
Mit dem key möchte ich in den Zeilen aber dann jeweils nur die Werte nicht aber die id verschlüsseln.
Also quasi:
???,???,???,???,id=8

Die verschlüsselten Werte sind ja so wie ich das sehe byte arrays. Wie man byte Arrays in files schreibt versteh ich schon ungefähr:
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
String secretKeyFileName = "sym_key";
        ObjectOutputStream out = new ObjectOutputStream(
                new FileOutputStream(secretKeyFileName));
        out.writeObject(key);
        out.close();
Kann ich nun aber eben den Klartext aus der ID und die byte arrays irgendwie in einer Datei kombinieren?

Ich möchte dann auch in der Datei später mit anderen Programmen nochmal einlesen, und die IDs modifizieren, an den Verschlüsselten Werten soll sich aber nichts ändern.

Also z.B. ???,???,???,???,id=8 => ???,???,???,???,id=33

Ganz zum Ende möchte ich die Datei dann wieder mit dem symetrischen Schlüssel entschlüsseln, so dass in der Datei wieder folgende Zeilen stehen:
wert1,wert2,wert3,wert4,id=33

Ist so eine Kombination von Klartext und verschlüsselten Werten in einer Datei möglich? Falls ja, weis jemand wie dies zu bewerkstelligen wäre? Alternative wäre, die IDs in einer seperaten file zu führen und die Einträge der Daten quasi über die "Zeilenzahl" zu linken. Was aber irgendwie unschön wäre.
Don83 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 20.04.2012, 14:41   #2 (permalink)
tfa
Stammbenutzer
Viertel Gigabyte
 
Benutzerbild von tfa
 
Registriert seit: 19.03.2007
Fachbeiträge: 3.565
Blog-Einträge: 24
Abgegebene Danke: 52
Erhielt 300 Danke für 288 Beiträge
Dann verschlüssele nur die Werte und schreibe sie Base64-kodiert in die Datei. Von Byte-Arrays in Textdateien würde ich abraten.
__________________
Snippets: Hibernate-Mappings - Nichtrechteckige Fenster - SwingWorker - ReadWriteLock - Database ConnectionPool - Synchronisation mit Locks - EventBus - BlockingQueue - RMI - Scripting mit JRuby - Embedded Derby
How-Tos: Remoting mit Spring - Dependency Injection mit Spring
FAQs: Exceptions
tfa ist gerade online  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 20.04.2012, 15:06   #3 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 03.03.2009
Fachbeiträge: 129
Abgegebene Danke: 8
Erhielt 1 Danke für 1 Beitrag
Zitat: tfa
Beitrag anzeigen
Dann verschlüssele nur die Werte und schreibe sie Base64-kodiert in die Datei. Von Byte-Arrays in Textdateien würde ich abraten.
Danke erstmal für den Hinweis. Ich habe leider nun Probleme die Base64 konvertierung durchzuführen.
Hierzu habe ich mir das commons Paket von apache geholt und eine kleine Testklasse geschrieben:

Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
import org.apache.commons.codec.binary.Base64;
 
public class Base64Test {
    public static void main(String[] args) {
        String plainTextString = "Hallo!";
        byte[] plainTextBytes = plainTextString.getBytes();
        String text = Base64.encode(plainTextBytes);
        System.out.println("Der BASE64 String: " + text);
    }
}

In eclipse wird mir für Zeile 7 folgendes angezeigt:
Zitat:
"Type mismatch: cannot convert from byte[] to String".
Aber das ist doch genau das was die BASE64 konvertierung bewirken soll?
Don83 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 20.04.2012, 15:21   #4 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von SlaterB
 
Registriert seit: 13.11.2005
Fachbeiträge: 31.672
Abgegebene Danke: 0
Erhielt 2.570 Danke für 2.531 Beiträge
Base64 (Commons Codec 1.6 API)
schaue nach was dort bei encode() steht, falls du sie findest, ist anscheinend eine Methode der Oberklasse,
schaue nach was du an Methoden findest, die String zurückgeben,

die Bedienungsanleitung nicht zu lesen sondern eine derartige Standard-Fleiß-Arbeit anderen zu überlassen, macht keinen guten Eindruck
__________________
Hansa wird Meister.

Geändert von SlaterB (20.04.2012 um 15:26 Uhr)
SlaterB ist gerade online  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 20.04.2012, 15:24   #5 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 03.03.2009
Fachbeiträge: 129
Abgegebene Danke: 8
Erhielt 1 Danke für 1 Beitrag
Ok, tut mir leid, habe die Methode gefunden.
Don83 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datei beim schreiben verschlüsseln beim lesen entschlüsseln TheTobi Allgemeine Java-Themen 11 10.04.2009 13:20
Datei auf Server mit lokaler Datei vergleichen Solitary Man Allgemeine Java-Themen 4 21.03.2009 18:54
Werte in einer Datei speichern ? kaper28 Java Basics - Anfänger-Themen 9 28.01.2009 17:58
Eine Datei erstellen kaper28 Java Basics - Anfänger-Themen 2 25.01.2009 14:39
Programmerweiterung durch Datei die Funktionen enthält Hatge Allgemeine Java-Themen 5 30.03.2007 07:13


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de