Sisällysluettelo:

Caesar Cipher -ohjelma Pythonissa: 4 vaihetta
Caesar Cipher -ohjelma Pythonissa: 4 vaihetta

Video: Caesar Cipher -ohjelma Pythonissa: 4 vaihetta

Video: Caesar Cipher -ohjelma Pythonissa: 4 vaihetta
Video: TUDev's Cryptography with Python Workshop! Creating a Substitution Cipher (Caesar Cipher) 2024, Marraskuu
Anonim
Caesar Cipher -ohjelma Pythonissa
Caesar Cipher -ohjelma Pythonissa

Caesar Cipher on vanha ja laajalti käytetty salaus, joka on helppo salata ja purkaa. Se toimii siirtämällä aakkosten kirjaimia toisiinsa ja luomalla kokonaan uusi aakkosto (ABCDEF voisi siirtyä yli neljän kirjaimen yli ja muuttua EFGHIJ: ksi).

Caesar Ciphers eivät ole kaikkein turvallisimpia salauksia, mutta sopivat hyvin pieniin tehtäviin, kuten salaisten muistiinpanojen välittämiseen tai salasanojen vahvistamiseen. Koodin tulkinta on todella helppoa, mutta sen salaus voi olla työlästä, jos sinulla ei ole erityisiä aakkosia muistissa.

Tämän prosessin helpottamiseksi voimme käyttää tietokoneiden voimaa, tarkemmin sanoen ohjelmointikieltä Python.

Tämä opastettava opastaa sinua luomaan ohjelman, joka muuntaa viestit salaukseksi komentoosi.

Tarvikkeet

Tarvitset vain Python -tulkin: IDLE, Pycharm ja Thonny ovat hyviä, ilmaisia vaihtoehtoja (käytin Pycharmia)

Perustiedot Pythonista

Vaihe 1: Muuttujien ilmoittaminen ja syötteiden saaminen

Muuttujien ilmoittaminen ja syötteiden saaminen
Muuttujien ilmoittaminen ja syötteiden saaminen

Aakkosen, viestin, muutoksen jne. Merkkijonoarvojen (teksti) tallentamiseksi meidän on käytettävä muuttujia. Aloitamme ilmoittamalla muuttujat 'aakkoset', 'osittainen yksi', 'osittainen kaksi' ja 'uusi alfabetti'. Olen kirjoittanut koodiini Camel Case -muuttujien nimet (ensimmäinen sana on pieni ja toinen iso), mutta voit kirjoittaa sen haluamallasi tavalla, kunhan muistat muuttaa sen myös koko koodin. Aakkosmuuttujan arvo on "abcdefghijklmnopqrstuvwxyz". Kaikki muut muuttujat on asetettu arvoon "", joka on tyhjä merkkijono, koska meillä ei ole vielä niiden arvoja.

Tämä tekee osittaisen järjestelmän luomisen, jota käytämme todella muutoksen luomiseen. Tämä selitetään myöhemmässä vaiheessa.

Tämän jälkeen meidän on saatava viesti ja siirrettävä arvo käyttäjältä. Käytämme tähän syöttötoimintoa. Tämä koodin osa pyytää käyttäjältä viestin ja numeron, jolla aakkoset siirretään.

KOODI:

aakkoset = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

partTwo = ""

newAlphabet = ""

message = input ("Kirjoita viesti, jonka haluat kääntää:").lower ()

key = int (input ("Anna numero, jolla haluat siirtää:"))

Vaihe 2: Uuden aakkoston luominen

Uuden aakkoston luominen
Uuden aakkoston luominen

Luo nyt siirretty aakkoset. Tätä varten käytämme osittaista järjestelmää. Osittaisessa järjestelmässä tietokone jakaa aakkoset kahteen osaan (hieno tapa sanoa osia). Ensimmäinen osa on kuitenkin pitkä, kun kerroit ohjelmalle siirtyvän, ja toinen on loppuosa. Tietokone vaihtaa osia. Juuri sitä koodi tekee, ja ensimmäinen lause, joka sanoo, että jos siirto on 0, uusi aakkosto ja vanha aakkoset ovat samat, koska et muuta mitään.

Esimerkiksi:

Jakso - 123456789

Osittainen yksi - 123; Osa 2 - 456789

Uusi jakso - 456789123

KOODI:

jos avain == 0:

newAlphabet = aakkoset

elif -avain> 0:

partialOne = aakkoset [: näppäin]

partTwo = aakkoset [avain:]

newAlphabet = osittainenKaksi + osittainenYksi

muu:

PartOne = aakkoset [:(26 + näppäin]

partTwo = aakkoset [(26 + näppäin):]

newAlphabet = osittainenKaksi + osittainenYksi

Vaihe 3: Viestin siirtäminen

Viestin siirtäminen
Viestin siirtäminen

Nyt meillä on aakkosemme ja uusi aakkosemme. Jäljellä on vain vaihtaa viesti koodiksi.

Ensinnäkin asetamme uuden muuttujan ja kutsumme sen "salatuksi" ja asetamme sen arvoon "". Sitten kirjoitamme todella monimutkaisen silmukan, joka tarkistaa viestin jokaisen kirjaimen ja vaihtaa sen uuteen kirjaimeen. Se antaa tuloksen ja siellä on se, onnistuneesti muunnettu koodi!

KOODI:

encrypted = "" for message_index alueella (0, len (message)):

jos viesti [message_index] == "":

salattu+= ""

alphabet_index alueella (0, len (newAlphabet)):

jos viesti [message_index] == aakkoset [alphabet_index]:

salattu+= uusiAakkoset [aakkoset_indeksi]

tulosta (salattu)

Vaihe 4: Muuta

Lisää
Lisää
Lisää
Lisää

Liitteenä on kooditiedosto.

Suositeltava: