1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Datei verschlüsseln

  • java-girl
  • 5. März 2007 um 18:18
  • Unerledigt
  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 5. März 2007 um 18:18
    • #1

    Hallo,
    gibt es in Java eine fertige Klasse, die eine Datei beim Schreiben verschlüsselt und beim Lesen wieder entschlüsselt? Mir selbst einen Algorithmus auszudenken ist mir ehrlich gesagt für eine Highscoreliste zu viel Aufwand...wenns was Fertiges gibt wär das ja schon toll...
    Mfg.
    java-girl

    There's no better place than 127.0.0.1!

  • JohnFoo
    20
    JohnFoo
    Mitglied
    Reaktionen
    61
    Punkte
    4.231
    Beiträge
    761
    • 5. März 2007 um 19:27
    • #2

    Hast schon die JCE (Java Cryptography Extensions) versucht? Sind teil vom J2SE seit 1.4.

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 7. März 2007 um 13:32
    • #3

    Ja, und ich bin auf Probleme gestoßen!
    Mein Code:

    Code
    public void save(){
    	try{
    		Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
    		cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(new byte[]{1, 2, 3, 4, 5, 6, 7, 8}, "DES"));
    		FileOutputStream fi = new FileOutputStream(FILENAME);
    		CipherOutputStream writer = new CipherOutputStream(fi, cipher);
    		byte[] bytes = name.getBytes();
    		for(byte b : bytes){
    			writer.write(b);
    		}
    		writer.write('|');
    		bytes = new Integer(clicks).toString().getBytes();
    		for(byte b : bytes){
    			writer.write(b);
    		}
    		writer.write('|');
    		bytes = new Integer(year).toString().getBytes();
    		for(byte b : bytes){
    			writer.write(b);
    		}
    		writer.write('|');
    		bytes = new Integer(month).toString().getBytes();
    		for(byte b : bytes){
    			writer.write(b);
    		}
    		writer.write('|');
    		bytes = new Integer(day).toString().getBytes();
    		for(byte b : bytes){
    			writer.write(b);
    		}
    		writer.write('|');
    		bytes = new Integer(hour).toString().getBytes();
    		for(byte b : bytes){
    			writer.write(b);
    		}
    		writer.write('|');
    		bytes = new Integer(minute).toString().getBytes();
    		for(byte b : bytes){
    			writer.write(b);
    		}
    		writer.write('|');
    		writer.close();
            }
    	catch(IOException e){
    		e.printStackTrace();
    	}
    	catch(NoSuchAlgorithmException e){
    		e.printStackTrace();
    	}
    	catch(NoSuchPaddingException e){
    		e.printStackTrace();
    	}
    	catch(InvalidKeyException e){
    		e.printStackTrace();
    	}
    }
    
    
    public void load(){
    	try{
    		Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
    		cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(new byte[]{1, 2, 3, 4, 5, 6, 7, 8}, "DES"));
    		FileInputStream fi = new FileInputStream(FILENAME);
    		CipherInputStream reader = new CipherInputStream(fi, cipher);
    		char c = (char)reader.read();
    		StringBuilder b = new StringBuilder();
    		while(c!='|'){
    			b.append(c);
    			c = (char)reader.read();
    		}
    		name = b.toString();
    		int read = reader.read();
    		int score = 0;
    		while(read!='|'){
    			score = score*10+(read-48);
    			read = reader.read();
    		}
    		clicks = score;
    		read = reader.read();
    		int y = 0;
    		while(read!='|'){
    			y = y*10+(read-48);
    			read = reader.read();
    		}
    		year = y;
    		read = reader.read();
    		int m = 0;
    		while(read!='|'){
    			m = m*10+(read-48);
    			read = reader.read();
    		}
    		month = m;
    		read = reader.read();
    		int d = 0;
    		while(read!='|'){
    			d = d*10+(read-48);
    			read = reader.read();
    		}
    		day = d;
    		read = reader.read();
    		int h = 0;
    		while(read!='|'){
    			h = h*10+(read-48);
    			read = reader.read();
    		}
    		hour = h;
    		read = reader.read();
    		int mi = 0;
    		while(read!='|'){
    			mi = mi*10+(read-48);
    			read = reader.read();
    		}
    		minute = mi;
    		reader.close();
            catch(IOException e){
    		e.printStackTrace();
    	}
    	catch(NoSuchAlgorithmException e){
    		e.printStackTrace();
    	}
    	catch(NoSuchPaddingException e){
    		e.printStackTrace();
    	}
    	catch(InvalidKeyException e){
    		e.printStackTrace();
    	}
    }
    Alles anzeigen

    Das Schreiben der Datei funktioniert, das Lesen aber nicht mehr. Es kommt immer eine InvalidKeyException wenn ich versuche, den Cipher in der Methode load() zu initialisieren. Fehlermeldung ist "Parameters missing". Mit einem KeyGenerator habe ich es auch schon probiert, da geht nicht einmal das schreiben. Da kommt ebenfalls beim initialisieren des Ciphers selbige Fehlermeldung!

    There's no better place than 127.0.0.1!

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung