Caesarova šifra je jeden z nejstarších algoritmů šifrování zpráv. Tato šifra je pojmenována po Juliu Caesarovi, který byl první, nebo alespoň jeden z prvních, kteří tuto šifru používali. Caesar ji konkrétně používal pro vojenskou komunikaci. Šifra funguje velice jednoduchým způsobem - je také snadno prolomitelná.
Princip šifry je takový, že se každé písmenko posune podle pevně určeného počtu prvků. To znamená, že když budeme chtít zašifrovat zprávu 'abc' pomocí klíče 2 (myslím tím posun), tak nám vznikne řetězec 'cde'.

Jak je toto šifrování jednoduché, tak je také lehce prolomitelné, a to především bruteforce útokem.
Implementace do Javy:
Pro toto šifrování jsem sepsal primitivní malou třídu, která obsahuje 2 metody. Jedna metoda šifruje a druhá dešifruje. Zde je celá třída:
public class Caesar {
// promenne
private int key;
private char znak;
private String text;
private StringBuffer sifra = new StringBuffer();
//konstruktor
public Caesar(String text, int key) {
this.key = key;
this.text = text;
}
//metoda code k sifrovani
public String code() {
for(int i = 0;i < text.length();i++) {
znak = (char) (text.charAt(i) + key);
if(znak > 'z')
znak = (char) (znak - 26);
sifra.append(znak);
}
return sifra.toString();
}
//metoda decode k desifrovani
public String decode() {
for(int i = 0;i < text.length();i++) {
znak = (char) (text.charAt(i) - key);
if(znak < 'a')
znak = (char) (znak + 26);
sifra.append(znak);
}
return sifra.toString();
}
}
Myslím, že detajlnější rozbor je v tuto chvíli zbytečný. Třída a její metody jsou opravdu jednoduché. Zde ještě ukážu vytvoření instance této třídy a výpis metody pro zašifrování.
public static void main(String[] args) {
Caesar objekt = new Caesar("defg", 3);
System.out.print(objekt.decode());
}
Tento kousek kodu by vypsal - cjql
