Obsah:

Program Caesar Cipher v Pythonu: 4 kroky
Program Caesar Cipher v Pythonu: 4 kroky

Video: Program Caesar Cipher v Pythonu: 4 kroky

Video: Program Caesar Cipher v Pythonu: 4 kroky
Video: Caesar Cipher Program in Python | Encryption and Decryption With Caesar Cipher 2024, Listopad
Anonim
Program Caesar Cipher v Pythonu
Program Caesar Cipher v Pythonu

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ů

Deklarace proměnných a získávání vstupů
Deklarace proměnných a získává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

Vytvoření nové abecedy
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

Posun zprávy
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ší

Další
Další
Další
Další

V příloze je soubor s kódem.

Doporučuje: