Sisukord:

Caesari šifriprogramm Pythonis: 4 sammu
Caesari šifriprogramm Pythonis: 4 sammu

Video: Caesari šifriprogramm Pythonis: 4 sammu

Video: Caesari šifriprogramm Pythonis: 4 sammu
Video: caesar 2024, November
Anonim
Caesari šifriprogramm Pythonis
Caesari šifriprogramm Pythonis

Caesari šifr on iidne ja laialdaselt kasutatav šifr, mida on lihtne krüptida ja dekrüpteerida. See toimib tähestiku tähtede nihutamisega, et luua täiesti uus tähestik (ABCDEF võib nihutada üle 4 tähe ja muutuda EFGHIJ -ks).

Caesar Ciphers ei ole kõige turvalisemad šifrid, kuid sobivad hästi väikesteks ülesanneteks, näiteks salajaste märkmete edastamiseks või paroolide pisut tugevamaks muutmiseks. Koodi dešifreerimine on tõesti lihtne, kuid selle krüptimine võib olla tüütu, kui teil pole spetsiaalset tähestikku meelde jäetud.

Selle protsessi lihtsustamiseks saame kasutada arvutite võimsust, täpsemalt programmeerimiskeelt Python.

See juhend annab teile teada, kuidas luua programm, mis teisendab teie käsul sõnumid šifriks.

Tarvikud

Kõik, mida vajate, on Pythoni tõlk: IDLE, Pycharm ja Thonny on mõned head tasuta valikud (ma kasutasin Pycharmi)

Põhiteadmised Pythonist

Samm: muutujate deklareerimine ja sisendite hankimine

Muutujate deklareerimine ja sisendite hankimine
Muutujate deklareerimine ja sisendite hankimine

Tähestiku, sõnumi, nihke jne stringi (teksti) väärtuste tegelikuks salvestamiseks peame kasutama muutujaid. Alustuseks deklareerime muutujad „tähestik”, „osaline üks”, „osaline kaks” ja „uus tähestik”. Olen koodis Camel Case muutujate nimed kirjutanud (esimene sõna on väiketäht ja teine suur), kuid võite selle kirjutada nii, nagu soovite, kui mäletate seda ka kogu ülejäänud koodis muuta. Tähestiku muutuja väärtus on "abcdefghijklmnopqrstuvwxyz". Kõik muud muutujad on seatud väärtusele "", mis on tühi string, kuna meil pole veel nende väärtusi.

See on osalise süsteemi seadistamine, mida me tegelikult kasutame vahetuse loomiseks. Seda selgitatakse hilisemas etapis.

Pärast seda peame kasutajalt sõnumi kätte saama ja väärtust nihutama. Selleks kasutame sisendfunktsiooni. See koodi osa küsib kasutajalt sõnumit ja numbrit tähestiku nihutamiseks.

KOOD:

tähestik = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

partTwo = ""

newAlphabet = ""

message = input ("Palun sisestage sõnum, mida soovite tõlkida:").lower ()

võti = int (sisend ("Palun sisestage number, mille võrra soovite nihutada:"))

2. samm: uue tähestiku loomine

Uue tähestiku loomine
Uue tähestiku loomine

Nüüd nihutatud tähestiku loomiseks. Selleks kasutame osalist süsteemi. Osaline süsteem on see, kus arvuti jagab tähestiku kaheks osaks (väljamõeldud viis osade ütlemiseks). Esimene osa on siiski pikk, kui te ütlesite programmile, et see nihkub, ja teine osa on ülejäänud. Arvuti vahetab osasid. See on täpselt see, mida kood teeb koos esimese avaldusega, mis ütleb, et kui nihe on 0, on uus tähestik ja vana tähestik samad, kuna te ei vaheta midagi.

Näiteks:

Järjestus - 123456789

Üks osa - 123; Teine osa - 456789

Uus jada - 456789123

KOOD:

kui võti == 0:

newAlphabet = tähestik

elif võti> 0:

partialOne = tähestik [: võti]

partsTwo = tähestik [võti:]

newAlphabet = osalineKaks + osalineÜks

muidu:

osaline Üks = tähestik [:(26 + võti)]

partsTwo = tähestik [(26 + klahv):]

newAlphabet = osalineKaks + osalineÜks

Samm: sõnumi nihutamine

Sõnumi nihutamine
Sõnumi nihutamine

Nüüd on meil oma tähestik ja uus tähestik. Jääb vaid sõnum koodiks muuta.

Esiteks seadsime uue muutuja ja nimetame selle "krüpteeritud" ja määrame selle väärtusele "". Seejärel kirjutame tõeliselt keerulise for-loopi, mis kontrollib sõnumi iga tähte ja lülitab selle uuele tähele. See väljastab tulemuse ja seal on see, edukalt teisendatud kood!

KOOD:

encrypted = "" sõnumi_indeksi jaoks vahemikus (0, len (sõnum)):

kui sõnum [message_index] == "":

krüptitud+= ""

tähestiku_indeksi jaoks vahemikus (0, len (uus tähestik)):

kui sõnum [teate_indeks] == tähestik [tähestiku_indeks]:

krüptitud+= uus tähestik [tähestiku_indeks]

printimine (krüpteeritud)

4. samm: täiendav

Lisaks
Lisaks
Lisaks
Lisaks

Lisatud on koodifail.

Soovitan: