ROT13

ROT13 (ROT-13) je jednoduchá monoalfabetická substituční šifra nad abecedou 26 znaků anglické abecedy. ROT13 je speciálním případem Caesarovy šifry.

Šifrování a dešifrování

K šifrování a dešifrování je použita operace posunu (rotace) abecedy o 13 znaků. Pokud abecedu zapíšeme do dvou řádků o třinácti znacích, tak šifrujeme a dešifrujeme tím způsobem, že nahrazuje písmena z prvního řádku odpovídajícími písmeny z druhého řádku (a písmena druhého řádku písmeny řádku prvního).

ROT13 – šifrovací/dešifrovací schéma
ROT13 – šifrovací/dešifrovací schéma

Příklady

EMAMAMASO ⇔ RZNZNZNFB
UTOKZASVITANI ⇔ HGBXMNFIVGNAV
ZASILKANACESTE ⇔ MNFVYXNANPRFGR

Kód

    /**
     * ROT13
     * @param text text obsahujici pouze velke znaky anglicke abecedy
     * @return sifrovany text pokud byl vstupem otevreny text, desifrovany text, pokud byl vstupem sifrovany text
     */
    public static String rot13(String text) {
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < text.length(); i++) {
            if (text.charAt(i) < 'A' || text.charAt(i) > 'Z') {
                throw new IllegalArgumentException("Text must contain only uppercase english letters");
            }
            builder.append((char) ('A' + ((text.charAt(i) - 'A' + 13) % 26)));
        }
        return builder.toString();
    }







Doporučujeme