Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Caesar Cipher je starodávná a široce používaná šifra, kterou lze snadno šifrovat a dešifrovat. Funguje to tak, že přesunete písmena abecedy a vytvoříte zcela novou abecedu (ABCDEF by se mohl posunout o 4 písmena a stal by se EFGHIJ).
Caesar Ciphers nejsou nejbezpečnější šifry, ale jsou dobré pro malé úkoly, jako je předávání tajných poznámek nebo trochu silnější hesla. Je opravdu snadné kód dešifrovat, ale šifrování může být zdlouhavé, pokud nemáte speciální abecedu uloženou v paměti.
Abychom tento proces usnadnili, můžeme využít sílu počítačů, konkrétněji programovacího jazyka Python.
Tento Instructable vám ukáže, jak vytvořit program, který na váš příkaz převádí zprávy na šifru.
Zásoby
Vše, co potřebujete, je překladač Pythonu: IDLE, Pycharm a Thonny jsou dobré a bezplatné možnosti (použil jsem Pycharm)
Základní znalosti Pythonu
Krok 1: Deklarování proměnných a získání vstupů
Abychom ve skutečnosti uložili řetězcové (textové) hodnoty abecedy, zprávy, posunu atd., Musíme použít proměnné. Začneme vyhlášením proměnných „abeceda“, „částečnýOne“, „částečnýTwo“a „nováAlphabet“. Napsal jsem názvy proměnných v Camel Case v mém kódu (první slovo je malé a druhé velké), ale můžete jej napsat jakýmkoli způsobem, pokud si pamatujete, že jej změníte i ve zbytku kódu. Abecední proměnná má hodnotu „abcdefghijklmnopqrstuvwxyz“. Všechny ostatní proměnné jsou nastaveny na „“, což je prázdný řetězec, protože ještě nemáme jejich hodnoty.
Co to dělá, je nastavení částečného systému, což je to, co používáme k tomu, abychom skutečně vytvořili posun. To bude vysvětleno v pozdějším kroku.
Poté musíme od uživatele získat zprávu a hodnotu posunu. K tomu používáme funkci vstupu. Tato část kódu žádá uživatele o zprávu a číslo, o které se má abeceda posunout.
KÓD:
abeceda = "abcdefghijklmnopqrstuvwxyz"
partialOne = ""
partialTwo = ""
newAlphabet = ""
message = input ("Zadejte prosím zprávu, kterou chcete přeložit:").lower ()
klíč = int (zadejte („Zadejte číslo, o které chcete přesunout:“))
Krok 2: Vytvoření nové abecedy
Nyní vytvořte posunutou abecedu. K tomu použijeme částečný systém. Částečný systém je místo, kde počítač rozdělí abecedu na dvě části (fantastický způsob říkání částí). První část je však dlouhá, o kterou jste programu řekli, aby přešla, a ta druhá je zbytek. Počítač přepne dílčí části. To je přesně to, co kód dělá, spolu s prvním příkazem, který říká, že pokud je posun 0, nová abeceda a stará abeceda jsou stejné, protože nic nepřepínáte.
Například:
Sekvence - 123456789
Část první - 123; Část druhá - 456789
Nová sekvence - 456789123
KÓD:
pokud klíč == 0:
newAlphabet = abeceda
elif klíč> 0:
partialOne = abeceda [: klíč]
partialTwo = abeceda [klíč:]
newAlphabet = partialTwo + partialOne
jiný:
partialOne = abeceda [:(26 + klíč)]
partialTwo = abeceda [(26 + klíč):]
newAlphabet = partialTwo + partialOne
Krok 3: Posun zprávy
Nyní máme naši abecedu a novou abecedu. Vše, co zbývá, je přepnout zprávu do kódu.
Nejprve nastavíme novou proměnnou, nazveme ji „šifrovanou“a nastavíme na „“. Poté napíšeme opravdu komplikovaný for-loop, který zkontroluje každé písmeno ve zprávě a přepne ho na nové písmeno. Výsledkem je výsledek a máte jej, úspěšně převedený kód!
KÓD:
encrypted = "" pro message_index v rozsahu (0, len (zpráva)):
pokud zpráva [message_index] == "":
šifrováno+= ""
pro alphabet_index v rozsahu (0, len (newAlphabet)):
pokud zpráva [message_index] == abeceda [alphabet_index]:
zašifrováno+= nová abeceda [alphabet_index]
tisk (šifrovaný)
Krok 4: Další
V příloze je soubor s kódem.