ROT13 – ROT13 online, przykłady, gotowa implementacja

ROT13 – ROT13 online, przykłady, gotowa implementacja

ROT13 – to jeden z najprostszych i jednocześnie najstarszych szyfrów używanych do szyfrowania tekstu. Obecnie nie powinien być już wykorzystywany jako podstawa zapewnienia bezpieczeństwa, świetnie jednak nadaje się do nauki podstaw programowania oraz kryptografii.

ROT13

ROT13 polega na przesunięciu każdej litery alfabetu o stałą liczbę pozycji – 13.

ROT13

ROT13 jest jedną z najprostszych technik szyfrowania. Jest to rodzaj szyfru podstawieniowego, w którym każda litera tekstu jawnego (niezaszyfrowanego) zastępowana jest inną, oddaloną od niej o stałą liczbę pozycji w alfabecie literą (szyfr monoalfabetyczny).

Zobaczmy to na przykładzie.

ROT13 – Przykład

Działanie szyfru ROT13 jest bardzo proste.

  • Do szyfrowania oraz odszyfrowania naszego tekstu posługujemy się alfabetem łacińskim – 26 znaków.
  • Następnie podczas szyfrowania zamieniamy znaki tekstu jawnego na zaszyfrowane przez odnalezienie ich odpowiedników w naszym alfabecie pod pozycją przesuniętą o 13 – jak wskazuje nazwa ROT13.

Przykładowo:

  • litera A zostanie zaszyfrowana jako litera N,
  • B jako O,
  • C jako P itd.

ROT13 – Odszyfrowanie tekstu

Wygoda i prosta ROT13 polega między innymi na tym, że do szyfrowania i odszyfrowywania wykorzystujemy ten sam algorytm.

Czyli, jego dwukrotne użycie na tekście daje w wyniku dokładnie ten sam tekst:

ROT13(ROT13(x)) = x

Zatem odszyfrowanie tekstu będzie polegało na ponownym wykorzystaniu ten samej funkcji szyfrującej – ROT13(tekst);

Dzieje się tak, ponieważ wykorzystujemy 26-znakowy alfabet (2 × 13 = 26).

ROT13 – Algorytm

Algorytm szyfrowania zastosowany w ROT13 powstał na bazie, bardziej ogólnego algorytmu – Szyfru Cezara. W jego przypadku, podczas kodowania możemy sami ustalić przesunięcie.

➡ ZOBACZ 👉: Szyfr Cezara – szyfr CEZARA online, przykłady, gotowa implementacja

Jednak należy pamiętać, że tego typu techniki podmieniające pojedyncze litery alfabetu na inne, nie oferują w praktyce żadnego bezpieczeństwa komunikacji…

ROT13 – Implementacja

Aby lepiej zrozumieć działanie ROT13, warto przyjrzeć się implementacji w Java. Albo nawet lepiej! Samodzielnie spróbować ją przygotować 🙂

Jeżeli dopiero stawiasz swoje pierwsze kroki w programowaniu, to zapraszam do naszego darmowego kursu Java:

➡ ZOBACZ 👉: Kurs Java | Darmowy Kurs Programowania w Javie

Jeżeli natomiast myślisz o pracy jako programista i chcesz zostać Junior Developerem, zobacz ten materiał:

➡ ZOBACZ 👉: Młodszy programista (Junior developer) – jak zostać?, CV, zarobki, praca

E-book Java Cheat Sheet

E-book Java Cheat Sheet Pobierz darmowy e-book Java Cheat Sheet.

To kompendium wiedzy, dla osób, które uczą się lub chcą uczyć się programowania w Javie.

Aż 24 strony samych konkretów!

Znajdziesz w nim:

  • grafiki,
  • przykłady kodu,
  • komendy,
  • objaśnienia,

dzięki którym nauka Javy będzie dużo łatwiejsza!

➡ ZOBACZ 👉: Pobieram e-book Java Cheat Sheet

ROT13 – Java

Poniższy kod przyjmuje tekst, który ma zostać zaszyfrowany, a następnie zwraca już zaszyfrowany tekst:

for (int i = 0; i < input.length(); i++) {
			char c = input.charAt(i);

			if (c >= 'a' && c <= 'm') {
				c += 13;
			} else if (c >= 'A' && c <= 'M') {
				c += 13;
			} else if (c >= 'n' && c <= 'z') {
				c -= 13;
			} else if (c >= 'N' && c <= 'Z') {
				c -= 13;
			}

			result.append(c);
		}

W naszym kodzie iterujemy po wszystkich elementach tekstu, a następnie szyfrujemy je, poprzez przesuniecie znaków o 13 pozycji – zgodnie z kodami ASCII.

Kody ASCII

Żeby lepiej zrozumieć działania tego algorytmu, potrzebujemy wiedzy na temat kodów ASCII. Tutaj zachęcam do przeczytania materiałów na ten temat:

➡ ZOBACZ 👉: ASCII – ASCII table, tablica kodów ASCII

A => 65
B => 66
C => 67
D => 68
E => 69
F => 70

ROT13 – Ograniczenia

ROT13 nie jest idealnym algorytmem i dla niektórych wyrażeń nie spełnia nawet podstawowych założeń. Może się np. zdarzyć, że zakodowane słowa przybierają formę innych słów w tekście oryginalnym (niezakodowanym).

W skrajnym przypadku może dojść jedynie do zamiany słów miejscami!

Przykładowo:

  • ROT13(„ten hejnal urwany gra”)
  • po zakodowaniu ma postać – „gra urwany hejnal ten”.

ROT13 – Podsumowanie

ROT13 jest bardzo prostym i łatwym do złamania algorytmem, dlatego nie powinien być obecnie wykorzystywany w kryptografii.

Świetnie jednak sprawdza się jako ćwiczenie programistyczne dla osób, które chcą rozwijać swoje umiejętności oraz poznać podstawy kryptografii.


20+ BONUSOWYCH materiałów z programowania

e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!

Jak zostać programistą

1 Comment
Share:

1 Comment

  1. Łukasz says:

    A tak

    private static String alfabet = „abcdefghijklmnopqrstuvwxyz”;

    private static List characters(String s) {
    List characterList = new ArrayList();
    for (int i = 0; i < s.length(); i++) {
    characterList.add(s.charAt(i));

    }
    return characterList;
    }

    private static String s(List list, String cesar) {
    String password = „”;
    for (int i = 0; i < cesar.length(); i++) {
    int count = 13;
    for (int j = 0; j (j + 13))
    password += list.get(j + 13);
    else
    password += list.get((j + 13) – list.size());
    }

    }
    }

    return password;
    }

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *