Frage zur Verschlüsselung in java

  • Themenstarter Themenstarter Long John Silver
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
L

Long John Silver

Gast
Code:
import java.io.*;

public class verschluesselung {

    static File klar;
    static File chiffre;
    static DataOutputStream chiffretext;

    public static void main (String args[]) throws IOException{

        String zeile;

        klar = new File(args[0]);
        chiffre = new File(args[1]);
        String verschiebung = args[2];
        try { 
            FileReader dateneingabestrom = new FileReader(klar);
            BufferedReader klartext = new BufferedReader(dateneingabestrom);
            FileOutputStream datenausgabestrom = new FileOutputStream(chiffre);
            chiffretext = new DataOutputStream(datenausgabestrom);
            zeile = klartext.readLine();
            while (zeile != null) {
                verschluessle(zeile, verschiebung);
                zeile = klartext.readLine();
            }
        }
        catch (IOException e) {
            System.err.println(e.toString());
        }
    }

    public static void verschluessle (String s, String a) {
        byte geheim[] = new byte[256];

        geheim = s.getBytes();
        for (int i=0;i<geheim.length;i++) {
            if (geheim[i]>90) geheim[i]-=32;
            geheim[i]+=Integer.parseInt(a);
            if (geheim[i]>=90) geheim[i]-=26;
        }
        try {
            for (int i=0; i<geheim.length; i++) chiffretext.write(geheim[i]);
            chiffretext.write('\n');
        }
        catch (IOException e) {
            System.err.println(e.toString());
        }
    }
}

Wie Ihr seht habe ich hier eine Verschlüsselung erstellt, allerings kommt beim ausführen in java (eclipse) folgende Fehlermeldung:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at verschluesselung.main(verschluesselung.java:14)


An welchem Problem kann oder könnte dass liegen? Muss ich bei RUN irgend etwas in Argumente rein schreiben?
 
ja, 2 Dateinamen + eine Zahl

Tipp: beim Verschluesseln wird potentiell tausende Male Integer.parseInt(a); ausgeführt,
wandle diese Zahl nur EINMAL am Anfang in einen int um und gut is

--------

> for (int i=0; i<geheim.length; i++) chiffretext.write(geheim);

es muss doch auch eine Operation geben, um das Array in einem Schritt komplett zu schreiben? -> API lesen
 
Könntest du mir ein Beispiel für die Dateinamen geben
Und was für eine Zahl muss da noch mit rein?
 
java verschluesselung c:/temp/a.txt c:/temp/b.txt 4

wenn du den Sinn des Parameters a der Operatin verschluessle() nicht kennst, dann macht es keinen Sinn über den Parameter des Programms nachzudenken,
ist der Quellcode nicht von dir?
suche im Internet nach Caesar-Verschlüselung
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben