Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Caesar Cipher je starodávna a široko používaná šifra, ktorú je ľahké šifrovať a dešifrovať. Funguje to tak, že posunutím písmen abecedy vytvoríte úplne novú abecedu (ABCDEF by mohol posunúť viac ako 4 písmená a stal by sa EFGHIJ).
Caesar Ciphers nie sú najbezpečnejšie šifry, ale sú vhodné na malé úlohy, ako je odovzdávanie tajných poznámok alebo vytváranie hesiel o niečo silnejšie. Dešifrovať kód je skutočne jednoduché, ale šifrovať ho môže byť únavné, ak špeciálnu abecedu nemáte uloženú v pamäti.
Aby bol tento proces jednoduchší, môžeme využiť silu počítačov, presnejšie programovací jazyk Python.
Tento návod vám ukáže, ako vytvoriť program, ktorý na váš príkaz konvertuje správy na šifru.
Zásoby
Všetko, čo potrebujete, je prekladač Pythonu: IDLE, Pycharm a Thonny sú dobré a bezplatné možnosti (použil som Pycharm)
Základné znalosti jazyka Python
Krok 1: Deklarovanie premenných a získanie vstupov
Na skutočné uloženie reťazcových (textových) hodnôt abecedy, správy, posunu atď. Musíme použiť premenné. Začíname s deklarovaním premenných „abeceda“, „částečnýOne“, „čiastočnýTwo“a „nová abeceda“. Názvy premenných v Camel Case som zapísal do svojho kódu (prvé slovo je malé a druhé veľké), ale môžete ho napísať akýmkoľvek spôsobom, pokiaľ si ho budete pamätať aj v celom zvyšku kódu.. Abecedná premenná má hodnotu „abcdefghijklmnopqrstuvwxyz“. Všetky ostatné premenné sú nastavené na „“, čo je prázdny reťazec, pretože ešte nemáme ich hodnoty.
Čo to robí, je nastavenie čiastočného systému, ktorý vlastne používame na vytvorenie posunu. To bude vysvetlené v neskoršom kroku.
Potom musíme od používateľa dostať správu a hodnotu posunu. Na to používame vstupnú funkciu. Táto časť kódu požaduje od užívateľa správu a číslo, o ktoré sa má abeceda posunúť.
KÓD:
abeceda = "abcdefghijklmnopqrstuvwxyz"
partialOne = ""
partialTwo = ""
newAlphabet = ""
message = input („Zadajte správu, ktorú chcete preložiť:“).lower ()
kľúč = int (zadajte („Zadajte číslo, o ktoré sa chcete posunúť:“))
Krok 2: Vytvorenie novej abecedy
Teraz vytvorte posunutú abecedu. Na to použijeme čiastkový systém. Čiastočný systém je miesto, kde počítač rozdelí abecedu na dve časti (efektný spôsob, ako hovoriť časti). Prvá časť je však dlhá, aby ste povedali, aby program prešiel, a druhá je zvyšok. Počítač prepne časti. To je presne to, čo kód robí, spolu s prvým vyhlásením, ktoré hovorí, že ak je posun 0, nová abeceda a stará abeceda sú rovnaké, pretože nič neprepínate.
Napríklad:
Sekvencia - 123456789
Časť prvá - 123; Druhá časť - 456789
Nová sekvencia - 456789123
KÓD:
ak kľúč == 0:
newAlphabet = abeceda
elif key> 0:
partialOne = abeceda [: kľúč]
partialTwo = abeceda [kláves:]
newAlphabet = partialTwo + partialOne
inak:
partialOne = abeceda [:(26 + kláves)]
partialTwo = abeceda [(26 + kláves):]
newAlphabet = partialTwo + partialOne
Krok 3: Posunutie správy
Teraz máme našu abecedu a novú abecedu. Zostáva iba prepnúť správu do kódu.
Najprv nastavíme novú premennú, nazveme ju „šifrovanou“a nastavíme na „“. Potom napíšeme skutočne komplikovanú slučku For-loop, ktorá skontroluje každé písmeno v správe a prepne ho na nové písmeno. Výstupom je výsledok a tu ho máte, úspešne skonvertovaný kód!
KÓD:
encrypted = "" pre message_index v rozsahu (0, len (správa)):
ak správa [message_index] == "":
šifrované+= ""
pre alphabet_index v rozsahu (0, len (newAlphabet)):
ak správa [message_index] == abeceda [alphabet_index]:
šifrované+= nová abeceda [alphabet_index]
tlačiť (šifrované)
Krok 4: Dodatočné
V prílohe je súbor s kódom.