tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
2576
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von MacMo
    MacMo MacMo ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    9
    Hey,

    ich komme gerade bei meinem Programm nicht weiter. Und zwar muss ich eine Variable des Typs byte[] in eine Datei schreiben, allerdings bekomme ich es nicht hin.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(crypt.ALGORITHM);
                    keyPairGen.initialize(1024); // 1024 maximale Schluesselbreite
                    KeyPair keyPair = keyPairGen.generateKeyPair();
                    PrivateKey privKey = keyPair.getPrivate(); 
                    PublicKey pubKey = keyPair.getPublic();
     
                    FileWriter fw = new FileWriter("Daten/konten.prk", true);
                    byte[] bytes;
                    byte[] encrypt = "".getBytes();
                    byte[] decrypt = "".getBytes();
     
                    for(int i = 0; i < daten.toArray().length; i++) {
     
                        bytes = daten.get(i).toString().getBytes();
                        
                        encrypt = crypt.encrypt(pubKey, bytes);
                    }
                    
                    fw.write(encrypt);
                    fw.close();

    daten ist hierbei eine ArrayList. Diese wird verschlüsselt und die verschlüsselten Daten sollen nun in die Datei konten.prk geschrieben werden. Wie bewerkstellige ich das jetzt? Denn bei "fw.write(encrypt);" gibt er mir eine Fehlermeldung.

    Hat jemand einen Tip?

    Grüße,
    MacMo
     

  2. #2
    Avatar von DosCoder
    DosCoder DosCoder ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Ort
    Kreis Würzburg(Bayern)
    Beiträge
    228
    Hi,
    könntest du vieleicht mal die Fehlermeldung posten? Insbesondere den Namen der Exception?
    Außerdem würde ich es eh mit einer Serialisierung bewerkstelligen, oder müssen die Daten von einem anderen Programm ausgelesen werden?
    Ciao
    DosCoder
     
    Man kann mich für das verantwortlich machen, was ich hier schreibe, nicht für das, was andere verstehen.

    Sollte ich mal Mist labern weist mich bitte darauf hin.

    Ich freue mich über ein Danke, wenn ich helfen konnte!

  3. #3
    Avatar von MacMo
    MacMo MacMo ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    9
    NetBeans gibt mir folgende Fehlermeldung aus:

    Code :
    1
    2
    3
    
    symbol  : method write(byte[])
    location: class java.io.FileWriter
    fw.write(encrypt);

    Ich programmiere in Java noch nicht so lange. Was meinst du mit Serialisierung?
    Die Daten werden vom selben Programm wieder ausgelesen. Sollen eben verschlüsselt sein und da habe ich mir diesen Verschlüsslungsalgorithmus gegoogelt.
     

  4. #4
    Avatar von DosCoder
    DosCoder DosCoder ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Ort
    Kreis Würzburg(Bayern)
    Beiträge
    228
    Hi.
    Seriealisierung ist das "Flachpressen" von Objekten. Wie du weißt, werden Objekte nach Programmende gelöscht. Um dies zu vermeiden speichert man sie ab. Entweder als *.ser (dabei kommt irgendeine, nicht für Menschen gedachte, Zeichenfolge heraus, oder als normale Datei, was wesentlich mehr auf die Performance geht. Hier kannst du zu beiden Sachen nachlesen:
    Serialisierung: Java ist auch eine Insel
    Normales Abspeichern:Java ist auch eine Insel

    Zu der Fehlermeldung: sonst zeigt NB nix an? Keine Zeilennummer oder sowas?

    Ciao
    DosCoder
     
    Man kann mich für das verantwortlich machen, was ich hier schreibe, nicht für das, was andere verstehen.

    Sollte ich mal Mist labern weist mich bitte darauf hin.

    Ich freue mich über ein Danke, wenn ich helfen konnte!

  5. #5
    Avatar von MacMo
    MacMo MacMo ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    9
    Danke für die Links, werde ich mir mal anschauen.

    NetBeans zeigt vor dem Programmstart schon an, dass er "encrypt" nicht in die Datei schreiben kann, weil es eben vom Typ byte ist. Also suche ich eine Möglichkeit Variablen vom Typ byte in eine Datei zu schreiben.

    Edit: Das Problem ist ja nicht, die in die Datei zu schreiben. Das Funktioniert mit einem ganz normalen String. Nur die Variable encrypt will er nicht schreiben.


    byte[] Variable in Datei schreiben?-bild-1.jpg
    Geändert von MacMo (18.01.09 um 21:39 Uhr)
     

  6. #6
    Avatar von DosCoder
    DosCoder DosCoder ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Ort
    Kreis Würzburg(Bayern)
    Beiträge
    228
    Hi,
    dann ist die Sache doch einfach. Mach aus deinem Byte nen Integer, damit kommt der FileWriter zurecht:
    Code java:
    1
    2
    3
    
            byte r = 1;
            int i;
            i = (int)r;
    Ciao
    DosCoder
     
    Man kann mich für das verantwortlich machen, was ich hier schreibe, nicht für das, was andere verstehen.

    Sollte ich mal Mist labern weist mich bitte darauf hin.

    Ich freue mich über ein Danke, wenn ich helfen konnte!

  7. #7
    Avatar von MacMo
    MacMo MacMo ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    9
    Funktioniert leider auch nicht. Ich denke, da es sich um ein Byte-Array handelt.

    Was ich vergessen habe zu erwähnen. Der Inhalt der Variable encrypt ist RSA verschlüsselt. Vielleicht ist das noch von Bedeutung.

    Danke schon mal für die Antworten.
     

  8. #8
    Avatar von Billie
    Billie Billie ist offline Mitglied Platin
    Registriert seit
    Jan 2003
    Ort
    Arzl im Pitztal (Tirol)
    Beiträge
    510
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
            try {            
                Cipher cipher = Cipher.getInstance(secureDeviceKey.getAlgorithm());
                cipher.init(Cipher.ENCRYPT_MODE, secureDeviceKey);
                String password = "1234";
                byte[] encrypted = cipher.doFinal(password.getBytes());            
                System.out.println("encrypted=" + new String(encrypted));
                File f = new File("test.txt");
                FileOutputStream fos = new FileOutputStream(f);
                fos.write(encrypted);
                fos.close();
                FileInputStream fis = new FileInputStream(f);
                byte[] data = new byte[(int) f.length()];
                fis.read(data);
                cipher.init(Cipher.DECRYPT_MODE, secureDeviceKey);
                byte[] decrypted  = cipher.doFinal(data);            
                System.out.println("decrypted=" + new String(decrypted));
            } catch (Throwable t) {
                t.printStackTrace();
            }
     
    Fann Ég Fjalli Fallega Steina
    Faldi Dá Alla Vildi Deim Leyna
    Huldi Dar Hellisskúta Heillasteina
    Alla Mína Una eth slegu Óskasteina

Ähnliche Themen

  1. ANT Wörter aus eingelesener Datei in Variable schreiben
    Von PHabc im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 03.09.10, 16:07
  2. String und int Variable in eine Datei schreiben
    Von XxbambamxX im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 22.08.10, 21:20
  3. [Batch] Variable mit in neue Datei schreiben
    Von Trash im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 01.10.09, 17:14
  4. Variable in eine Datei schreiben?
    Von Katharina_ im Forum PHP
    Antworten: 3
    Letzter Beitrag: 18.06.05, 08:16
  5. variable in text-datei schreiben
    Von hammer12 im Forum PHP
    Antworten: 1
    Letzter Beitrag: 07.09.01, 17:30