Satura rādītājs:

Cēzara šifra programma programmā Python: 4 soļi
Cēzara šifra programma programmā Python: 4 soļi

Video: Cēzara šifra programma programmā Python: 4 soļi

Video: Cēzara šifra programma programmā Python: 4 soļi
Video: Caesar Cipher Program in Python | Encryption and Decryption With Caesar Cipher 2024, Jūlijs
Anonim
Cēzara šifra programma Python
Cēzara šifra programma Python

Cēzara šifrs ir sens un plaši izmantots šifrs, kuru ir viegli šifrēt un atšifrēt. Tas darbojas, pārceļot alfabēta burtus, lai izveidotu pilnīgi jaunu alfabētu (ABCDEF varētu pārvietot vairāk par 4 burtiem un kļūt par EFGHIJ).

Cēzara šifri nav visdrošākie šifri, taču tie ir piemēroti maziem uzdevumiem, piemēram, slepenu piezīmju nodošanai vai paroļu stiprināšanai. Koda atšifrēšana ir patiešām vienkārša, taču šifrēšana var būt apnicīga, ja nav iegaumēts īpašais alfabēts.

Lai atvieglotu šo procesu, mēs varam izmantot datoru jaudu, precīzāk programmēšanas valodu Python.

Šī pamācība parādīs, kā izveidot programmu, kas pēc jūsu komandas pārvērš ziņojumus šifrā.

Piegādes

Viss, kas jums nepieciešams, ir Python tulks: IDLE, Pycharm un Thonny ir dažas labas bezmaksas iespējas (es izmantoju Pycharm)

Pamatzināšanas par Python

1. darbība. Mainīgo deklarēšana un ievades iegūšana

Mainīgo deklarēšana un ievades iegūšana
Mainīgo deklarēšana un ievades iegūšana

Lai faktiski saglabātu alfabēta, ziņojuma, maiņas uc virkņu (teksta) vērtības, mums jāizmanto mainīgie. Mēs sākam, deklarējot mainīgos “alfabēts”, “daļējs viens”, “daļējs divi” un “jauns alfabēts”. Es savā kodā esmu ierakstījis Camel Case mainīgo nosaukumus (pirmais vārds ir mazie un otrie lielie), bet jūs varat to rakstīt, kā vēlaties, ja vien atceraties to mainīt arī pārējā koda daļā. Alfabēta mainīgajam ir vērtība "abcdefghijklmnopqrstuvwxyz". Visi pārējie mainīgie ir iestatīti uz "", kas ir tukša virkne, jo mums vēl nav to vērtību.

Tas tiek darīts, izveidojot daļēju sistēmu, ko mēs izmantojam, lai faktiski izveidotu maiņu. Tas tiks izskaidrots vēlāk.

Pēc tam mums ir jāsaņem ziņojums un jāmaina vērtība no lietotāja. Lai to izdarītu, mēs izmantojam ievades funkciju. Šajā koda daļā lietotājam tiek prasīts ziņojums un cipars, lai mainītu alfabētu.

KODS:

alfabēts = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

partTwo = ""

newAlphabet = ""

Ziņojums = ievade ("Lūdzu, ievadiet ziņojumu, kuru vēlaties tulkot:"). zemāks ()

atslēga = int (ievade ("Lūdzu, ievadiet numuru, par kuru vēlaties pārvietot:"))

2. darbība: izveidojiet jaunu alfabētu

Jaunā alfabēta veidošana
Jaunā alfabēta veidošana

Tagad, lai izveidotu pārvietoto alfabētu. Lai to izdarītu, mēs izmantosim daļēju sistēmu. Daļējā sistēma ir vieta, kur dators sadala alfabētu divās daļās (iedomāts veids, kā pateikt daļas). Tomēr pirmā daļa ir tik ilga, ka jūs teicāt programmai pāriet, un otrā daļa ir atlikusī daļa. Dators pārslēdz detaļas. Tas ir tieši tas, ko dara kods kopā ar pirmo paziņojumu, kurā teikts, ka, ja nobīde ir 0, jaunais un vecais alfabēts ir vienādi, jo jūs neko nepārslēdzat.

Piemēram:

Secība - 123456789

Pirmā daļa - 123; Otrā daļa - 456789

Jauna secība - 456789123

KODS:

ja atslēga == 0:

newAlphabet = alfabēts

elif atslēga> 0:

partialOne = alfabēts [: taustiņš]

partTwo = alfabēts [atslēga:]

newAlphabet = daļējsDivi + daļējiViens

cits:

partialOne = alfabēts [:(26 + taustiņš]

partTwo = alfabēts [(26 + taustiņš):]

newAlphabet = daļējsDivi + daļējiViens

3. solis: ziņojuma maiņa

Ziņojuma maiņa
Ziņojuma maiņa

Tagad mums ir mūsu alfabēts un jaunais alfabēts. Atliek tikai ziņu pārvērst kodā.

Pirmkārt, mēs iestatām jaunu mainīgo un nosaucam to par “šifrētu” un iestatām uz “”. Tad mēs uzrakstām patiešām sarežģītu for-loop, kas pārbauda katru vēstuli un pārslēdz to uz jauno burtu. Tas izvada rezultātu, un jums tas ir, veiksmīgi pārveidots kods!

KODS:

encrypted = "" ziņojuma_indeksam diapazonā (0, len (ziņojums)):

ja ziņojums [message_index] == "":

šifrēts+= ""

alfabēta_indeksam diapazonā (0, len (newAlphabet)):

ja ziņojums [ziņojuma_indekss] == alfabēts [alfabēta_indekss]:

šifrēts+= jaunsAlfabēts [alfabēta_indekss]

drukāt (šifrēts)

4. solis: papildu

Papildu
Papildu
Papildu
Papildu

Pievienots koda fails.

Ieteicams: