Cezarov program za šifriranje u Pythonu: 4 koraka
Cezarov program za šifriranje u Pythonu: 4 koraka
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. Radi tako što premješta slova abecede kako bi stvorio potpuno novu abecedu (ABCDEF bi mogao premjestiti 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.

Da bismo olakšali ovaj proces, možemo koristiti snagu računara, tačnije programski jezik Python.

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

Supplies

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

Osnovno znanje Python

Korak 1: Deklarisanje promenljivih i dobijanje unosa

Deklarisanje promenljivih i dobijanje unosa
Deklarisanje promenljivih i dobijanje unosa

Da bismo zapravo spremili string (tekstualne) vrijednosti abecede, poruke, shift itd., Moramo koristiti varijable. Započinjemo proglašavanjem varijabli 'abeceda', 'djelomično jedno', 'djelomično dva' 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. Abecedna varijabla ima vrijednost "abcdefghijklmnopqrstuvwxyz". Sve ostale varijable su postavljene na "", što je prazan niz jer još nemamo njihove vrijednosti.

Ono što ovo radi je postavljanje Parcijalnog sistema, što koristimo za stvaranje pomaka. Ovo ć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.

KOD:

alphabet = "abcdefghijklmnopqrstuvwxyz"

djelomičnoOne = ""

parcijalnoTwo = ""

newAlphabet = ""

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

key = int (unos ("Unesite broj koji želite premjestiti za:"))

Korak 2: Kreiranje nove abecede

Stvaranje nove abecede
Stvaranje nove abecede

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

Na primjer:

Sekvenca - 123456789

Parcijalne One - 123; Drugi dio - 456789

Nova sekvenca - 456789123

KOD:

if key == 0:

newAlphabet = 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

Premještanje poruke
Premještanje poruke

Sada imamo našu abecedu i novu abecedu. Ostaje samo da poruku prebacite u kôd.

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

KOD:

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

ako je poruka [message_index] == "":

šifrirano+= ""

za alphabet_index u rasponu (0, len (newAlphabet)):

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

šifrirano+= novoAbeceda [abeceda_indeks]

ispis (šifrirano)

Korak 4: Dodatni

Dodatno
Dodatno
Dodatno
Dodatno

U prilogu je datoteka koda.