Hallo Zusammen,
ich bin gerade dabei eine Vigenere-Verschlüsselung zu programmieren.
Ich kann eine Textdatei einlesen und wieder schreiben...
Ich kann auch einen String ver- und wieder entschlüsseln, aber leider funktioniert das in Kombination nicht
hier mein Code fürs ein und auslesen (RWcsv.java):
hier mein code fürs ver- und entschlüsseln (VigenereCrypt.java):
hier meine main() (in der klasse RWcsv.java)
ich will UTF16 Dateien einlesen und auch wieder schreiben, aber um das auch in die Praxis umzusetzen, habe ich wohl zu wenig Grundwissen über die Zeichenkodierung in Java...
Es hakt wohl beim schreiben der Dateien (also die methode string2File)
zumindest erwarte ich das da...., sitze schon nen tag am debuggen und sehe nicht was ich falsch mache...
ich bin gerade dabei eine Vigenere-Verschlüsselung zu programmieren.
Ich kann eine Textdatei einlesen und wieder schreiben...
Ich kann auch einen String ver- und wieder entschlüsseln, aber leider funktioniert das in Kombination nicht
hier mein Code fürs ein und auslesen (RWcsv.java):
Java:
//CSV als ByteArray einlesen return: STRING
public String file2String(String fileName) throws IOException
{
ByteArrayOutputStream bo = new ByteArrayOutputStream();
BufferedReader in = new BufferedReader( new FileReader(fileName));
int c;
while ((c = in.read()) > -1){
bo.write(c);
}
return (new String(bo.toByteArray(),"UTF16"));
}
public void string2File(String fileName, String msg) throws IOException
{
File outputFile = new File(fileName);
FileWriter fw = new FileWriter(outputFile);
fw.write(msg);
fw.close();
}
hier mein code fürs ver- und entschlüsseln (VigenereCrypt.java):
Java:
public String enCrypt(String plaintext, String password)
{
this.plaintext=plaintext;
crypttext="";
textIndex=pwIndex=0;
for (textIndex=0; textIndex < plaintext.length() ;textIndex++)
{
debugPWValue= (int) password.charAt(pwIndex);
debugPlaintextValue= (int) plaintext.charAt(textIndex);
debugCrypttextValue= (plaintext.charAt(textIndex) + password.charAt(pwIndex)) %codeTable;
crypttext+= (char) ((debugCrypttextValue+codeTable)%codeTable);
pwIndex++;
if (pwIndex>=password.length())
{
pwIndex=0;
}
}
System.out.println("++DEBUG++ sofort entschlüsseln:\n"+deCrypt(crypttext, password));
return crypttext;
}
public String deCrypt(String crypttext, String password)
{
plaintext="";
this.crypttext=crypttext;
textIndex=pwIndex=0;
for (textIndex=0; textIndex < crypttext.length() ;textIndex++)
{
// debugPWValue= (int) password.charAt(pwIndex);
// debugPlaintextValue= (int) crypttext.charAt(textIndex);
// debugCrypttextValue= (crypttext.charAt(textIndex) - password.charAt(pwIndex)) %codeTable;
plaintext+= (char)((crypttext.charAt(textIndex) - password.charAt(pwIndex)+ codeTable)% codeTable);
pwIndex++;
if (pwIndex>=password.length())
{
pwIndex=0;
}
}
return plaintext;
}
hier meine main() (in der klasse RWcsv.java)
Java:
public static void main(String[] args) throws IOException
{
// new Gui();
/*
* Debug and Testing
*/
RWcsv testRWcsv = new RWcsv();
VigenereCrypt testCrypt = new VigenereCrypt();
String path =(System.getProperty("user.home")+"/Eigene Dateien/");
String password = "aaaa";
String encrypted= null;
String decrypted=null;
//data.csv einlesen
decrypted = testRWcsv.file2String(path+"data.csv");
System.out.println("++DEBUG++ DATA.CSV eingelesen:\n"+decrypted+"\n");
//verschlüsseln
encrypted = testCrypt.enCrypt(decrypted, password);
//encrypted.csv schreiben
testRWcsv.string2File(path+"encrypted.csv", encrypted);
System.out.println("Hier sollte das gleiche stehn: "+encrypted);
//encrypted.csv auslesen
encrypted = testRWcsv.file2String(path+"encrypted.csv");
System.out.println("Hier sollte das gleiche stehn: "+encrypted);
// //entschlüsseln
// decrypted = testCrypt.deCrypt(encrypted, password);
// System.out.println("\n++DEBUG++ decrypted: \n"+decrypted+"\n");
//
// //decrypted.csv schreiben
//// decrypted=encrypted;
// testRWcsv.string2File(path+"decrypted.csv",decrypted);
}
ich will UTF16 Dateien einlesen und auch wieder schreiben, aber um das auch in die Praxis umzusetzen, habe ich wohl zu wenig Grundwissen über die Zeichenkodierung in Java...
Es hakt wohl beim schreiben der Dateien (also die methode string2File)
zumindest erwarte ich das da...., sitze schon nen tag am debuggen und sehe nicht was ich falsch mache...