64 lines
1.7 KiB
Java
64 lines
1.7 KiB
Java
package Crypter;
|
|
|
|
|
|
/**
|
|
* Interface für die Verschlüsselung.
|
|
*
|
|
* Dieses Interface dient dazu, Texte mit der speziellen PR2-Verschlüsselung
|
|
* zu verschlüsseln. Die Verschlüsselung funktioniert so, dass bestimmte
|
|
* Zeichen durch andere ersetzt werden.
|
|
*
|
|
* Hierbei gilt die folgende Übersetzungstabelle:
|
|
*
|
|
* <code>
|
|
* e -> 3
|
|
* 3 -> e
|
|
* l -> 1
|
|
* 1 -> l
|
|
* o -> 0
|
|
* 0 -> o
|
|
* a -> 4
|
|
* 4 -> a
|
|
* t -> 7
|
|
* 7 -> t
|
|
* </code>
|
|
*
|
|
* Aus dem Text "pr2 im sose 2023 ist eine super vorlesung" würde nach
|
|
* dieser Regel "pr2 im s0s3 2o2e is7 3in3 sup3r v0r13sung".
|
|
*
|
|
* Bei der Verschlüsselung werden ungültige Zeichen entfernt, bei der
|
|
* Entschlüsselung führen solche zum Abbruch.
|
|
*/
|
|
public interface Crypter {
|
|
|
|
/**
|
|
* Erlaubte Zeichen im Klartext.
|
|
*/
|
|
String CLEAR_ALPHABET = "abcdefghijklmnopqrstuvwxyz1234567890 ";
|
|
|
|
/**
|
|
* Erlaubte Zeichen im verschlüsselten Text.
|
|
*/
|
|
String CYPHER_ALPHABET = "4bcd3fghijk1mn0pqrs7uvwxyzl2ea56t89o ";
|
|
|
|
/**
|
|
* Verschlüsselt den gegebenen Text. Enthält die Eingabe Großbuchstaben,
|
|
* so werden diese in Kleinbuchstaben umgewandelt. Ungültige Zeichen
|
|
* werden ignoriert und nicht in den verschlüsselten Text übernommen.
|
|
*
|
|
* @param input Text, der verschlüsselt werden soll.
|
|
* @return Verschlüsselter Text.
|
|
*/
|
|
String encrypt(String input);
|
|
|
|
/**
|
|
* Entschlüsselt den gegebenen Text. Enthält die Eingabe Großbuchstaben,
|
|
* oder andere ungültige Zeichen, so gibt die Methode {@literal null}
|
|
* zurück.
|
|
*
|
|
* @param input Text, der entschlüsselt werden soll.
|
|
* @return Entschlüsselter Text oder {@literal null}.
|
|
*/
|
|
String decrypt(String input);
|
|
}
|