Turinys:

Cezario šifravimo programa „Python“: 4 žingsniai
Cezario šifravimo programa „Python“: 4 žingsniai

Video: Cezario šifravimo programa „Python“: 4 žingsniai

Video: Cezario šifravimo programa „Python“: 4 žingsniai
Video: Online программирование на Python 2024, Lapkritis
Anonim
Cezario šifravimo programa „Python“
Cezario šifravimo programa „Python“

Cezario šiferis yra senas ir plačiai naudojamas šifras, kurį lengva užšifruoti ir iššifruoti. Jis veikia perkeliant abėcėlės raides, kad būtų sukurta visiškai nauja abėcėlė (ABCDEF galėtų perkelti daugiau nei 4 raides ir taptų EFGHIJ).

„Cezario šifrai“nėra patys saugiausi šifrai, tačiau jie tinka mažoms užduotims, tokioms kaip slaptų užrašų perdavimas ar slaptažodžių stiprinimas. Iššifruoti kodą tikrai lengva, tačiau gali būti nuobodu jį užšifruoti, jei neturite įsimintos specialios abėcėlės.

Norėdami palengvinti šį procesą, galime naudoti kompiuterių, tiksliau programavimo kalbos „Python“, galią.

Ši instrukcija parodys, kaip sukurti programą, kuri jūsų komandai paverčia pranešimus į šifrą.

Prekės

Viskas, ko jums reikia, yra „Python“vertėjas: „IDLE“, „Pycharm“ir „Thonny“yra keletas gerų, nemokamų parinkčių (aš naudojau „Pycharm“)

Pagrindinės žinios apie „Python“

1 žingsnis: kintamųjų deklaravimas ir įvesties gavimas

Kintamųjų deklaravimas ir įvesties gavimas
Kintamųjų deklaravimas ir įvesties gavimas

Norėdami iš tikrųjų išsaugoti abėcėlės, pranešimo, poslinkio ir tt eilutės (teksto) reikšmes, turime naudoti kintamuosius. Pradedame skelbdami kintamuosius „alfabetas“, „dalinis vienas“, „dalinis du“ir „naujas abėcėlė“. Kodelyje „Camel Case“kintamųjų pavadinimus įrašiau į savo kodą (pirmasis žodis yra mažosios ir antrosios didžiosios), bet jūs galite jį parašyti, kaip norite, jei tik nepamiršite jį pakeisti ir likusioje kodo dalyje. Abėcėlės kintamasis turi reikšmę „abcdefghijklmnopqrstuvwxyz“. Visi kiti kintamieji yra nustatyti į „“, kuri yra tuščia eilutė, nes mes dar neturime jų reikšmių.

Tai sukuria dalinę sistemą, kurią mes naudojame, kad iš tikrųjų sukurtume pamainą. Tai bus paaiškinta vėliau.

Po to mes turime gauti pranešimą ir perkelti vertę iš vartotojo. Tam naudojame įvesties funkciją. Šioje kodo dalyje vartotojas prašo pranešimo ir skaičiaus, kad pakeistų abėcėlę.

KODAS:

abėcėlė = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

partTwo = ""

newAlphabet = ""

message = input ("Įveskite pranešimą, kurį norite išversti:").lower ()

raktas = int (įvestis ("Įveskite skaičių, kuriuo norite perkelti:"))

2 žingsnis: naujos abėcėlės kūrimas

Naujosios abėcėlės kūrimas
Naujosios abėcėlės kūrimas

Dabar sukurkite pakeistą abėcėlę. Norėdami tai padaryti, mes naudosime dalinę sistemą. Dalinė sistema yra ta, kurioje kompiuteris padalija abėcėlę į dvi dalis (išgalvotas būdas pasakyti dalis). Tačiau pirmoji dalis yra ilga, kai liepėte programai pereiti, o antroji - likusi. Kompiuteris perjungia dalis. Būtent tai daro kodas, kartu su pirmuoju teiginiu, kuriame teigiama, kad jei poslinkis yra 0, nauja abėcėlė ir senoji abėcėlė yra tos pačios, nes nieko nekeičiate.

Pavyzdžiui:

Seka - 123456789

Dalinis vienas - 123; Antroji dalis - 456789

Nauja seka - 456789123

KODAS:

jei raktas == 0:

newAlphabet = abėcėlė

elif raktas> 0:

partialOne = abėcėlė [: raktas]

partTwo = abėcėlė [raktas:]

newAlphabet = dalinisDvi + dalinisVienas

Kitas:

partialOne = abėcėlė [:(26 + klavišas]

partialTwo = abėcėlė [(26 + klavišas):]

newAlphabet = dalinisDvi + dalinisVienas

3 žingsnis: perkelkite pranešimą

Pranešimo perkėlimas
Pranešimo perkėlimas

Dabar turime savo abėcėlę ir naują abėcėlę. Liko tik perjungti pranešimą į kodą.

Pirmiausia nustatome naują kintamąjį, pavadiname jį „užšifruotu“ir nustatome į „“. Tada parašome tikrai sudėtingą for-loop, kuris patikrina kiekvieną pranešimo raidę ir perjungia ją į naują raidę. Jis pateikia rezultatą ir jūs turite jį, sėkmingai konvertuotą kodą!

KODAS:

encrypted = "" message_index diapazone (0, len (žinutė)):

jei pranešimas [message_index] == "":

užšifruotas+= ""

alphabet_index diapazone (0, len (newAlphabet)):

jei pranešimas [pranešimo_indeksas] == abėcėlė [abėcėlės_indeksas]:

šifruotas+= naujasAlfabetas [abėcėlės_indeksas]

spausdinti (užšifruota)

4 žingsnis: papildomas

Papildomas
Papildomas
Papildomas
Papildomas

Pridedamas kodo failas.

Rekomenduojamas: