Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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
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
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
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
Priložena je kodna datoteka.