Szyfr Komórkowy

Szyfr komórkowy polega na zapisywaniu liter za pomocą cyfr z klawiatury starego telefonu. Każda litera znajduje się pod konkretnym numerem, a liczba powtórzeń tej cyfry pokazuje, którą literę wybieramy.

Na przykład pod klawiszem 2 znajdują się litery A, B, C. Dlatego 2 oznacza A, 22 oznacza B, a 222 oznacza C. Podobnie 7777 oznacza S, bo litera S jest czwartą literą pod klawiszem 7.

To prosty i bardzo czytelny szyfr, ponieważ nawiązuje do dawnych telefonów komórkowych, w których wiadomości SMS pisało się przez kilkukrotne naciskanie tego samego klawisza.

Program w Pythonie

W linijkach 1-37 znajduje się funkcja szyfr_komorkowy, czyli główna część programu. Funkcja otrzymuje tekst, czyli wiadomość do zaszyfrowania albo odszyfrowania, oraz tryb, który decyduje, czy program ma szyfrować, czy deszyfrować.

W linijkach 2-11 zapisany jest słownik klawiatura. Każdej literze przypisany jest kod zgodny z układem starego telefonu. Na przykład A to 2, B to 22, C to 222, a K to 55, bo litera K jest drugą literą pod klawiszem 5. W linijce 12 tworzona jest pusta zmienna wynik, do której program będzie dopisywał kolejne kody albo odczytane litery.

W linijkach 14-21 działa szyfrowanie. Program przechodzi po kolei przez każdy znak wiadomości zamienionej na wielkie litery. Jeśli trafi na spację, dopisuje 0, ponieważ w tym programie 0 oznacza odstęp między wyrazami. Jeśli znak jest literą ze słownika, program dopisuje odpowiadający jej kod oraz spację oddzielającą kolejne kody.

W linijkach 23-37 działa deszyfrowanie. Najpierw program tworzy nowy słownik odwrocona_klawiatura, w którym zamienia miejscami litery i kody. Dzięki temu może łatwo sprawdzić, że na przykład kod 55 oznacza literę K. Następnie zaszyfrowany tekst jest dzielony za pomocą split() na osobne fragmenty kodu.

Jeśli program podczas deszyfrowania trafi na 0, dopisuje spację. Jeśli kod znajduje się w odwróconym słowniku, dopisuje odpowiednią literę do wyniku. Na końcu funkcja zwraca gotowy tekst.

W linijce 39 zapisana jest wiadomość KOT MA KOD. W linijkach 41-42 program szyfruje tę wiadomość i wypisuje wynik na ekranie. W linijkach 44-45 ta sama funkcja zostaje użyta ponownie, tym razem do deszyfrowania, dzięki czemu program pokazuje odczytaną wiadomość.

  1. def szyfr_komorkowy(tekst, tryb):
  2. klawiatura = {
  3. "A": "2", "B": "22", "C": "222",
  4. "D": "3", "E": "33", "F": "333",
  5. "G": "4", "H": "44", "I": "444",
  6. "J": "5", "K": "55", "L": "555",
  7. "M": "6", "N": "66", "O": "666",
  8. "P": "7", "Q": "77", "R": "777", "S": "7777",
  9. "T": "8", "U": "88", "V": "888",
  10. "W": "9", "X": "99", "Y": "999", "Z": "9999"
  11. }
  12. wynik = ""
  13. if tryb == "szyfruj":
  14. for znak in tekst.upper():
  15. if znak == " ":
  16. wynik = wynik + "0 "
  17. elif znak in klawiatura:
  18. wynik = wynik + klawiatura[znak] + " "
  19. return wynik.strip()
  20. else:
  21. odwrocona_klawiatura = {}
  22. for litera in klawiatura:
  23. kod = klawiatura[litera]
  24. odwrocona_klawiatura[kod] = litera
  25. kody = tekst.split()
  26. for kod in kody:
  27. if kod == "0":
  28. wynik = wynik + " "
  29. elif kod in odwrocona_klawiatura:
  30. wynik = wynik + odwrocona_klawiatura[kod]
  31. return wynik
  32. tajemna_wiadomosc = "KOT MA KOD"
  33. zaszyfrowana = szyfr_komorkowy(tajemna_wiadomosc, "szyfruj")
  34. print("Zaszyfrowana wiadomość:", zaszyfrowana)
  35. odszyfrowana = szyfr_komorkowy(zaszyfrowana, "deszyfruj")
  36. print("Odszyfrowana wiadomość:", odszyfrowana)

Szyfr komórkowy – narzędzie

Szyfruj Tryb
0 Znaki
0 Elementy kodu

Wiadomość

0 znaków

Wynik

0 znaków

Przewijanie do góry