public void losActionPerformed(ActionEvent evt) { schluessel=tschluessel.getText(); org=klar.getText(); int l=org.length(); kette= new char[l]; kette=org.toCharArray(); Zufall random= new Zufall(schluessel); for (int i=0;i<l;i++){ kette[i]=random.xor(kette[i]); crypt.append(kette[i]+""); } } public void decryptActionPerformed(ActionEvent evt) { schluessel=tschluessel.getText(); int l=kette.length; Zufall random= new Zufall(schluessel); for (int i=0;i<l;i++)klar.append(random.xor(kette[i])+""); }
public class Zufall{
private long a=214013, b=13523655, m=(int)Math.pow(2,24), zahl=0;
public Zufall(){
reset();
}
public Zufall(String key){
reset(key);
}
public long naechsteZahl(){
zahl=(a*zahl+b)%m;
return zahl;
}
public void reset(){
zahl=(int)Math.random()*100+100;
}
public void reset(String key){
zahl=0;
for (int i=0;i<key.length();i++) zahl+=(int)key.charAt(i);
}
public char naechstesZeichen(){
return (char)(naechsteZahl()%26+65);
}
public byte naechstesByte(){
return (byte)(naechsteZahl()%256);
}
public int naechstesInt(){
return (int)naechsteZahl();
}
public String naechsterString(){
return Long.valueOf(naechsteZahl()).toString();
}
public char xor(char c){
return (char)((int)c ^ (int)naechstesZeichen());
}