Indholdsfortegnelse:

Caesar Cipher -program i Python: 4 trin
Caesar Cipher -program i Python: 4 trin

Video: Caesar Cipher -program i Python: 4 trin

Video: Caesar Cipher -program i Python: 4 trin
Video: The Caesar cipher | Journey into cryptography | Computer Science | Khan Academy 2024, November
Anonim
Cæsar Cipher -program i Python
Cæsar Cipher -program i Python

Cæsar -chifferet er en gammel og meget udbredt chiffer, der er let at kryptere og dekryptere. Det virker ved at flytte bogstaverne i alfabetet over for at oprette et helt nyt alfabet (ABCDEF kunne flytte over 4 bogstaver og ville blive EFGHIJ).

Caesar Ciphers er ikke de mest sikre cifre derude, men er gode til små opgaver som at sende hemmelige noter eller gøre adgangskoder lidt stærkere. Det er virkelig let at dechifrere koden, men det kan være kedeligt at kryptere en, hvis du ikke har det specielle alfabet udenad.

For at gøre denne proces lettere kan vi bruge computernes kraft, mere specifikt programmeringssproget Python.

Denne instruktør viser dig, hvordan du opretter et program, der konverterer meddelelser til en chiffer på din kommando.

Forbrugsvarer

Alt du behøver er en Python -tolk: IDLE, Pycharm og Thonny er nogle gode, gratis muligheder (jeg brugte Pycharm)

Grundlæggende kendskab til Python

Trin 1: Deklarere variabler og få input

Deklarere variabler og få input
Deklarere variabler og få input

For faktisk at gemme streng (tekst) værdierne i alfabetet, beskeden, skift osv. Skal vi bruge variabler. Vi starter med at erklære variablerne 'alfabet', 'partialOne', 'partialTwo' og 'newAlphabet'. Jeg har skrevet navnene på variablerne i Camel Case i min kode (det første ord er små og store bogstaver), men du kan skrive det, som du vil, så længe du husker at ændre det i resten af koden også. Alfabetvariablen har værdien "abcdefghijklmnopqrstuvwxyz". Alle de andre variabler er sat til "", hvilket er en tom streng, da vi endnu ikke har deres værdier.

Hvad dette gør er at oprette det delvise system, som er det, vi bruger til faktisk at skabe skiftet. Dette vil blive forklaret i et senere trin.

Efter dette skal vi få beskeden og flytte værdien fra brugeren. Vi bruger inputfunktionen til at gøre dette. Denne del af koden beder brugeren om en besked og et nummer til at flytte alfabetet efter.

KODE:

alfabet = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

partialTwo = ""

newAlphabet = ""

meddelelse = input ("Indtast venligst den besked, du vil oversætte:").lower ()

key = int (input ("Indtast venligst det nummer, du vil flytte med:"))

Trin 2: Oprettelse af det nye alfabet

Oprettelse af det nye alfabet
Oprettelse af det nye alfabet

Nu for at oprette det skiftede alfabet. For at gøre dette vil vi bruge det delvise system. Delsystemet er, hvor computeren opdeler alfabetet i to dele (en smart måde at sige dele på). Den første del er dog lang, du fortalte programmet at skifte forbi, og den anden er resten. Computeren skifter dele. Det er præcis, hvad koden gør sammen med den første sætning, der siger, at hvis skiftet er 0, er det nye alfabet og det gamle alfabet det samme, da du ikke skifter noget.

For eksempel:

Sekvens - 123456789

Delvis en - 123; Del to - 456789

Ny sekvens - 456789123

KODE:

hvis nøgle == 0:

newAlphabet = alfabet

elif -nøgle> 0:

partialOne = alfabet [: nøgle]

partialTwo = alfabet [key:]

newAlphabet = partialTwo + partialOne

andet:

partialOne = alfabet [:(26 + nøgle)]

partialTwo = alfabet [(26 + tast):]

newAlphabet = partialTwo + partialOne

Trin 3: Skift besked

Flytning af meddelelsen
Flytning af meddelelsen

Nu har vi vores alfabet og det nye alfabet. Det eneste, der er tilbage, er at skifte meddelelsen til koden.

Først satte vi en ny variabel og kalder den 'krypteret' og sætter den til "". Derefter skriver vi en virkelig kompliceret for-loop, som kontrollerer hvert bogstav i meddelelsen og skifter det til det nye bogstav. Det sender resultatet ud, og der har du det, en vellykket konverteret kode!

KODE:

encrypted = "" for message_index inden for område (0, len (meddelelse)):

hvis besked [message_index] == "":

krypteret+= ""

for alphabet_index i området (0, len (newAlphabet)):

hvis besked [message_index] == alfabet [alphabet_index]:

krypteret+= newAlphabet [alphabet_index]

print (krypteret)

Trin 4: Yderligere

Ekstra
Ekstra
Ekstra
Ekstra

Vedhæftet er kodefilen.

Anbefalede: