Sadržaj:

Cezarov program za šifriranje u Pythonu: 4 koraka
Cezarov program za šifriranje u Pythonu: 4 koraka

Video: Cezarov program za šifriranje u Pythonu: 4 koraka

Video: Cezarov program za šifriranje u Pythonu: 4 koraka
Video: caesar 2024, Srpanj
Anonim
Cezarov program za šifriranje u Pythonu
Cezarov program za šifriranje u Pythonu

Cezarova šifra je drevna i široko korištena šifra koja se lako šifrira i dešifrira. Djeluje tako da premjesti slova abecede kako bi stvorio potpuno novu abecedu (ABCDEF bi mogao pomaknuti preko 4 slova i postati EFGHIJ).

Caesar Ciphers nisu najsigurnije šifre, ali su dobre za male zadatke poput prenošenja tajnih bilješki ili jačanja lozinki. Dešifriranje koda je zaista jednostavno, ali može biti dosadno šifrirati ga ako nemate zapamćenu posebnu abecedu.

Kako bismo olakšali ovaj proces, možemo koristiti snagu računala, točnije programski jezik Python.

Ovaj Instructable će vam pokazati kako stvoriti program koji pretvara poruke u šifru na vašu naredbu.

Pribor

Sve što trebate je Python tumač: IDLE, Pycharm i Thonny su neke dobre, besplatne opcije (koristio sam Pycharm)

Osnovno poznavanje Pythona

Korak 1: Deklariranje varijabli i dobivanje unosa

Deklariranje varijabli i dobivanje unosa
Deklariranje varijabli i dobivanje unosa

Da bismo zapravo spremili nizove (tekstualne) vrijednosti abecede, poruke, pomaka itd., Moramo koristiti varijable. Započinjemo proglašavanjem varijabli 'abeceda', 'djelomično jedna', 'djelomično dvije' i 'novaAbeceda'. Napisao sam nazive varijabli u Camel Case u svom kodu (prva riječ je mala, a druga velika slova), ali možete je napisati kako god želite, sve dok se sjetite promijeniti je i u ostatku koda. Varijabla abecede ima vrijednost "abcdefghijklmnopqrstuvwxyz". Sve ostale varijable postavljene su na "", što je prazan niz jer još nemamo njihove vrijednosti.

Ovdje se radi o postavljanju djelomičnog sustava, što koristimo za stvaranje pomaka. To će biti objašnjeno u kasnijem koraku.

Nakon toga moramo dobiti poruku i vrijednost pomaka od korisnika. Za to koristimo funkciju unosa. Ovaj dio koda traži od korisnika poruku i broj za promjenu abecede.

KODIRATI:

abeceda = "abcdefghijklmnopqrstuvwxyz"

djelomičnoOne = ""

djelomičnoDva = ""

novaAbeceda = ""

message = input ("Molimo unesite poruku koju želite prevesti:").lower ()

key = int (input ("Molimo unesite broj koji želite pomaknuti za:"))

Korak 2: Stvaranje nove abecede

Stvaranje nove abecede
Stvaranje nove abecede

Sada za stvaranje pomaknute abecede. Da bismo to učinili, koristit ćemo djelomični sustav. Djelomični sustav je mjesto gdje računalo dijeli abecedu na dvije parcijalne (lijep način izgovaranja dijelova). Prvi djelomični dio je međutim dug koliko ste rekli programu da se pomakne za, a drugi je ostatak. Računalo mijenja dijelove. To je upravo ono što kôd radi, zajedno s prvom izjavom, koja kaže da ako je pomak 0, nova abeceda i stara abeceda su iste jer ne mijenjate ništa.

Na primjer:

Slijed - 123456789

Djelomičan jedan - 123; Drugi dio - 456789

Nova sekvenca - 456789123

KODIRATI:

ako je ključ == 0:

novaAbeceda = abeceda

elif ključ> 0:

djelomično Jedan = abeceda [: ključ]

djelomičnoDva = abeceda [ključ:]

novaAbeceda = djelomičnoDva + djelomičnoJedno

drugo:

djelomično Jedan = abeceda [:(26 + ključ)]

djelomičnoDva = abeceda [(26 + tipka):]

novaAbeceda = djelomičnoDva + djelomičnoJedno

Korak 3: Promjena poruke

Promjena poruke
Promjena poruke

Sada imamo svoju abecedu i novu abecedu. Ostaje samo prebaciti poruku u kôd.

Prvo smo postavili novu varijablu i nazvali je 'šifrirano' te postavili na "". Zatim napišemo zaista kompliciranu for petlju koja provjerava svako slovo u poruci i prebacuje ga na novo slovo. On ispisuje rezultat i evo ga, uspješno konvertirani kod!

KODIRATI:

encrypted = "" za message_index u rasponu (0, len (poruka)):

ako je poruka [message_index] == "":

šifrirano+= ""

za alfabet_indeks u rasponu (0, len (novaAbeceda)):

ako je poruka [message_index] == abeceda [alphabet_index]:

šifrirano+= novoAbeceda [abeceda_indeks]

ispis (šifrirano)

Korak 4: Dodatni

Dodatni
Dodatni
Dodatni
Dodatni

U privitku je datoteka koda.

Preporučeni: