Hallo,
ich habe ein Problem. Und zwar habe ich einen Code für die Cäsar Verschlüsselung geschrieben. Funktioniert auch sehr gut, wenn der Key bei 2 liegt...allerdings sollte der Key bei 17 liegen und das klappt nicht. Vielleicht findet ja jemand den Fehler...Danke schon mal!
ich habe ein Problem. Und zwar habe ich einen Code für die Cäsar Verschlüsselung geschrieben. Funktioniert auch sehr gut, wenn der Key bei 2 liegt...allerdings sollte der Key bei 17 liegen und das klappt nicht. Vielleicht findet ja jemand den Fehler...Danke schon mal!
Java:
import java.io.*;
import java.text.*;
import java.util.*;
public class caesar{
public static void main(String[] args){
StringBuffer output = new StringBuffer();
try {
InputStream in = new BufferedInputStream( new FileInputStream(args[0]) );
byte[] b = new byte[4096];
try {
//int c = in.read();
for(int c; (c = in.read(b)) != -1;) {
output.append(new String(b, 0, c));
//System.out.write( c );
}
}
finally {
in.close();
}
}
catch ( IOException e ) {
System.err.println( "cat: Fehler beim Verarbeiten von " + args[0] );
System.exit( 1 );
}
// Encryption Key
int ek = 2;
// Decryption Key
//int dekey = -2;
int dk = Integer.parseInt(args[1]);
caesar input = new caesar();
System.out.println("Verschluesselter Text: ");
System.out.println(output.toString());
System.out.println("Entschluesselter Text: ");
System.out.println(input.crypt(output.toString(), dk));
}
public String crypt(String input, int key) {
char[] letters = input.toCharArray();
StringBuilder result = new StringBuilder();
for (int i = 0; i < letters.length; ++i) {
if (letters[i] >= 'A' && letters[i] < 'A' + 26)
letters[i] = (char) (
((letters[i] + key - 'A') % 26) + 'A');
result.append(letters[i]);
}
return result.toString();
}
}