so hab mich noch mal dran gesetzt und bin jetzt scheinbar ein wenig weiter. Habe ein paar Dinge geändert wie man unschwer erkennen kann.
leider klappt es immer noch nicht richtig. vielleicht habt ihr ja eine idee woran es liegen könnte.
public class RC4 {
public static StringBuffer Verschluesseln(StringBuffer klar, StringBuffer key){
short[] Sbox = new short[256];
short[] Sbox2 = new short[256];
char temp;
short k, ver;
int j = 0;
for (short i = 0; i <= 255; i++){
Sbox[i] = i;
}
if (key.length() > 0){
for(int i = 0; i <= 255; i++){
if(j == key.length()){
j = 0;
}
Sbox2[i] = (short)key.charAt(j++);
}
}
for (short i = 0; i <= 255; i++){
j = (j + Sbox[i] + Sbox2[i])%256;
temp = (char)Sbox[i];
Sbox[i] = Sbox[j];
Sbox[j] = (short)temp;
}
int i,t;
i = j = 0;
for (short x = 0; x<=klar.length()-1;x++){
//Inkrement von i
i = (i+1)%256;
//Inkrement von j
j = (j + Sbox[i]) % 256;
temp = (char)Sbox[i];
Sbox[i] = Sbox[j] ;
Sbox[j] = (short)temp;
t = ( Sbox[i] + Sbox[j]) % 256 ;
k = Sbox[t];
ver = (short)(Sbox[x]^k);
klar.setCharAt(x, (char)(klar.charAt(x) ^ k));
} return klar;
}
public static void main(String[] args) {
StringBuffer klarText = new StringBuffer("TEST");
StringBuffer keyText = new StringBuffer("key");
System.out.println(Verschluesseln(klarText, keyText));
StringBuffer lsg = new StringBuffer(Verschluesseln(klarText, keyText));
System.out.println(Verschluesseln(lsg,keyText));
}
}
Schon mal danke für eure Hilfe!!!