Kazalo:

Program Caesar Cipher v Pythonu: 4 koraki
Program Caesar Cipher v Pythonu: 4 koraki

Video: Program Caesar Cipher v Pythonu: 4 koraki

Video: Program Caesar Cipher v Pythonu: 4 koraki
Video: Python Project for beginners #4| Caesar Cipher - Complete Code | Python for Beginners #lec66 2024, November
Anonim
Program Caesar Cipher v Pythonu
Program Caesar Cipher v Pythonu

Cesarjeva šifra je starodavna in široko uporabljena šifra, ki jo je enostavno šifrirati in dešifrirati. Deluje tako, da premakne črke abecede, da ustvari popolnoma novo abecedo (ABCDEF lahko premakne več kot 4 črke in bi postal EFGHIJ).

Cesarjeve šifre niso najbolj varne šifre, vendar so dobre za majhne naloge, kot so posredovanje tajnih zapiskov ali krepitev gesel. Dešifriranje kode je zelo preprosto, vendar je šifriranje lahko dolgočasno, če nimate zapomnjene posebne abecede.

Za olajšanje tega procesa lahko uporabimo moč računalnikov, natančneje programski jezik Python.

Ta Instructable vam bo pokazal, kako ustvariti program, ki na vaš ukaz pretvori sporočila v šifro.

Zaloge

Vse kar potrebujete je tolmač Python: IDLE, Pycharm in Thonny so nekaj dobrih, brezplačnih možnosti (uporabil sem Pycharm)

Osnovno znanje Pythona

1. korak: Izjavljanje spremenljivk in pridobivanje vložkov

Izjavljanje spremenljivk in pridobivanje vložkov
Izjavljanje spremenljivk in pridobivanje vložkov

Za dejansko shranjevanje nizov (besedila) vrednosti abecede, sporočila, premika itd. Moramo uporabiti spremenljivke. Začnemo z razglasitvijo spremenljivk „abeceda“, „delno eno“, „delno dve“in „nova abeceda“. Imena spremenljivk v Camel Case sem napisala v svojo kodo (prva beseda je mala in druga velika), vendar jo lahko napišete na kakršen koli način, če se spomnite, da jo spremenite tudi v preostali kodi. Abecedna spremenljivka ima vrednost "abcdefghijklmnopqrstuvwxyz". Vse druge spremenljivke so nastavljene na "", kar je prazen niz, saj še nimamo njihovih vrednosti.

To počne nastavitev delnega sistema, ki ga dejansko uporabljamo za ustvarjanje premika. To bo razloženo v naslednjem koraku.

Po tem moramo od uporabnika dobiti sporočilo in vrednost premika. Za to uporabljamo funkcijo vnosa. Ta del kode zahteva od uporabnika sporočilo in številko, po kateri lahko abecedo premakne.

KODA:

abeceda = "abcdefghijklmnopqrstuvwxyz"

delno eno = ""

delnoTwo = ""

newAlphabet = ""

message = input ("Prosimo, vnesite sporočilo, ki ga želite prevesti:").lower ()

key = int (vnos ("Vnesite številko, ki jo želite premakniti za:"))

2. korak: Ustvarjanje nove abecede

Ustvarjanje nove abecede
Ustvarjanje nove abecede

Zdaj za ustvarjanje premaknjene abecede. Za to bomo uporabili delni sistem. Delni sistem je, kjer računalnik razdeli abecedo na dva dela (domišljijski način povedati dele). Prvi del je kljub temu dolg, ko ste programu povedali, naj se premakne, drugi pa preostanek. Računalnik preklopi na del. Prav to počne koda, skupaj s prvo izjavo, ki pravi, da če je premik 0, sta nova abeceda in stara abeceda enaki, saj ne spreminjate ničesar.

Na primer:

Zaporedje - 123456789

Delna ena - 123; Drugi del - 456789

Novo zaporedje - 456789123

KODA:

če je ključ == 0:

novaAbeceda = abeceda

tipka elif> 0:

delno eno = abeceda [: ključ]

delnoDve = abeceda [ključ:]

novaAbeceda = delnoDve + delnoEno

drugače:

delnoEno = abeceda [:(26 + ključ)]

delnoDve = abeceda [(26 + tipka):]

novaAbeceda = delnoDve + delnoEno

3. korak: Prestavljanje sporočila

Premikanje sporočila
Premikanje sporočila

Zdaj imamo svojo abecedo in novo abecedo. Ostaja le, da sporočilo preklopite v kodo.

Najprej nastavimo novo spremenljivko in jo pokličemo 'šifrirano' ter nastavimo na »«. Nato napišemo res zapleteno for zanko, ki preveri vsako črko v sporočilu in jo preklopi na novo črko. Predvaja rezultat in tam imate, uspešno pretvorjeno kodo!

KODA:

encrypted = "" za message_index v razponu (0, len (sporočilo)):

če je sporočilo [message_index] == "":

šifrirano+= ""

za alphabet_index v razponu (0, len (novaAbeceda)):

če je sporočilo [message_index] == abeceda [alphabet_index]:

šifrirano+= novaAbeceda [abeceda_indeks]

tiskanje (šifrirano)

4. korak: Dodatno

Dodatno
Dodatno
Dodatno
Dodatno

Priložena je kodna datoteka.

Priporočena: