XorApplet-Applet


  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());
   }