Hallo Leute
Ich habe zum verschlüsseln von meinen Passwörtern ein kleines Programm geschrieben...
das hat soweit auch funktioniert, nur als ich versucht habe, dass es den code, mit dem es verschlüsselt, in eine .txt datei speichert un wieder ausliest bekomme ich wenn ich es starte und entschlüsseln will folgende Fehlermeldung:
Exception in thread "main" java.lang.NullPointerException
at verschluesseln.codelesen(verschluesseln.java:85)
at verschluesseln.entschluesseln(verschluesseln,java:51)
at verschluesseln.main(verschluesseln.java:9)
ich hab schon die boardsuche etc genutzt aber habe keine Lösung dafür gefunden.... hoffe einer von euch kann mir helfen.
Danke schonmal im voraus!
Ich habe zum verschlüsseln von meinen Passwörtern ein kleines Programm geschrieben...
das hat soweit auch funktioniert, nur als ich versucht habe, dass es den code, mit dem es verschlüsselt, in eine .txt datei speichert un wieder ausliest bekomme ich wenn ich es starte und entschlüsseln will folgende Fehlermeldung:
Exception in thread "main" java.lang.NullPointerException
at verschluesseln.codelesen(verschluesseln.java:85)
at verschluesseln.entschluesseln(verschluesseln,java:51)
at verschluesseln.main(verschluesseln.java:9)
Code:
import java.io.*;
public class verschluesseln {
public static void main (String[] args)throws IOException{
boolean y=true;
do{
System.out.println("Wollen sie verschluesseln (1), oder entschluesseln(2)?");
int x=LineInput.readInt();
if (x==1) verschluesseln();
if(x==2) entschluesseln();
System.out.println("Weiter? (j/n)");
String w=LineInput.readString();
if (w.equals("n")) y=false;
if (w.equals("j")) y=true;
}while(y);
}
public static void verschluesseln()throws IOException {
System.out.println("Geben sie den zu verschluesselnden Text ein.");
String text=LineInput.readString();
int lang=text.length();
char[] eingabe=text.toCharArray();
char[] ausgabe=text.toCharArray();
ausgabe=schluessel(lang, eingabe);
for(int i=0; i<lang;++i){
if(i==lang-1) System.out.println(ausgabe[i]);
else System.out.print(ausgabe[i]);
}
}
public static char[] schluessel (int lang, char[] eingabe)throws IOException{
char[] abc={'q','t','k','n','g','i','j',' ','m','e','h','p','o','b','a','2','d','c','8','0','f','4','l','1','s','x','5','7','9','3','u','6','w','z','r','y','v'};
int v=0;
int[] zufall=new int[lang];
for (int i=0;i<lang; ++i){
for (int u=0; u<36;++u)
if (eingabe[i]==abc[u])
v=u;
zufall[i]=zufall(36-v);
eingabe[i]=abc[v+zufall[i]];
}
codeschreiben(zufall, lang);
return eingabe;
}
public static int zufall(int lang){
int zufall=(int) (Math.random()*lang);
return zufall;
}
public static void entschluesseln()throws IOException {
System.out.println("Geben sie den Text ein, den sie entschluesseln wollen.");
String eingabe=LineInput.readString();
int lang=eingabe.length();
int[] code=new int [lang];
code=codelesen(lang);
char text[]=eingabe.toCharArray();
text=ent(lang, text, code);
for (int i=0; i<lang; ++i)
if(i==lang-1) System.out.println(text[i]); else System.out.print(text[i]);
}
public static char[] ent (int lang, char[] eingabe, int[] code){
char[] abc={'q','t','k','n','g','i','j',' ','m','e','h','p','o','b','a','2','d','c','8','0','f','4','l','1','s','x','5','7','9','3','u','6','w','z','r','y','v'};
int v=0;
for (int i=0; i<lang; ++i){
for (int u=0; u<36;++u)
if (eingabe[i]==abc[u])
v=u;
eingabe[i]=abc[v-code[i]];
}
return eingabe;
}
public static void codeschreiben(int[] code, int lang)throws IOException {
String[] ausgabe=new String[lang];
for (int i=0;i<lang;++i)
ausgabe[i]=ausgabe[i].valueOf(code[i]);
BufferedWriter schreiben = new BufferedWriter(new FileWriter("C:\\schluessel\\code.txt"));
for (int i=0;i<lang;++i)
schreiben.write(ausgabe[i]+" ,");
schreiben.close();
}
public static int[] codelesen(int lang) throws IOException{
int[] code=new int[lang];
String[] text=new String[lang];
BufferedReader lesen= new BufferedReader (new FileReader("C:\\schluessel\\code.txt"));
for (int i=0; i<lang-1;++i){
text[i]=lesen.readLine();
String merk=text[i];
text[i]=merk.valueOf(merk.charAt(0)-'0');
text[i]=text[i]+merk.valueOf(merk.charAt(1)-'0');
}
lesen.close();
for (int i=0; i<lang; ++i)
code[i]=Integer.parseInt(text[i]);
return code;
}
}
ich hab schon die boardsuche etc genutzt aber habe keine Lösung dafür gefunden.... hoffe einer von euch kann mir helfen.
Danke schonmal im voraus!