Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
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
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
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ą
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
Pridedamas kodo failas.