MezData-Logo

Lösung 2018-Wi-FIA-A1

Kodierverfahren

Quellcode [CodierVerfahren/SymmetrischeCodierverfahren.java]
public abstract class SymmetrischeCodierverfahren{
  protected String klarText ="DIESISTEINEBOTSCHAFT";
  protected String privateKey ="GEHEIM";
 
  //public SymetrischesCodierverfahren()
 
  public void setPrivateKey(String key){
    privateKey = key;  
  }
  public String getKlarText(){
    return klarText;  
  }
  public void setKlarText(String text){
    klarText=text;  
  }
  public abstract String codieren();
}
 
Quellcode [CodierVerfahren/Vigenere.java]
public class Vigenere extends SymmetrischeCodierverfahren{
   public String codieren(){
     String geheim = "";
     int i;
     for (i=0; i<klarText.length(); i++){
       geheim += (char)((klarText.charAt(i)-'A'+privateKey.charAt(i%privateKey.length())-'A')%26 +'A');   
     }
     return geheim;
   }
}