Innholdsfortegnelse:

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

Video: Caesar Cipher -program i Python: 4 trinn

Video: Caesar Cipher -program i Python: 4 trinn
Video: Caesar Cipher 2024, November
Anonim
Caesar Cipher -program i Python
Caesar Cipher -program i Python

Cæsar -krypteringen er en gammel og mye brukt kryptering som er lett å kryptere og dekryptere. Det fungerer ved å flytte bokstavene i alfabetet over for å lage et helt nytt alfabet (ABCDEF kan skifte over 4 bokstaver og ville bli EFGHIJ).

Caesar Ciphers er ikke de sikreste chifferene der ute, men er gode for små oppgaver som å sende hemmelige notater eller gjøre passord litt sterkere. Det er veldig enkelt å dechiffrere koden, men det kan være kjedelig å kryptere en hvis du ikke har det spesielle alfabetet lagret.

For å gjøre denne prosessen enklere kan vi bruke kraften til datamaskiner, nærmere bestemt programmeringsspråket Python.

Denne instruksen viser deg hvordan du lager et program som konverterer meldinger til en kryptering på kommando.

Rekvisita

Alt du trenger er en Python -tolk: IDLE, Pycharm og Thonny er noen gode, gratis alternativer (jeg brukte Pycharm)

Grunnleggende kunnskap om Python

Trinn 1: Deklarere variabler og få innspill

Deklarere variabler og få innspill
Deklarere variabler og få innspill

For å faktisk lagre streng (tekst) verdiene til alfabetet, meldingen, skift, etc. må vi bruke variabler. Vi starter med å deklarere variablene 'alfabet', 'delvisOne', 'delvisTo' og 'nyttAlfabet'. Jeg har skrevet navnene på variablene i Camel Case i koden min (det første ordet er små og store bokstaver), men du kan skrive det som du vil, så lenge du husker å endre det gjennom resten av koden også. Alfabetvariabelen har verdien "abcdefghijklmnopqrstuvwxyz". Alle de andre variablene er satt til "", som er en tom streng da vi ikke har verdiene deres ennå.

Det dette gjør er å sette opp det delvise systemet, som er det vi bruker for å faktisk skape skiftet. Dette vil bli forklart i et senere trinn.

Etter dette må vi få meldingen og flytte verdien fra brukeren. Vi bruker inngangsfunksjonen for å gjøre dette. Denne delen av koden ber brukeren om en melding og et tall for å flytte alfabetet etter.

KODE:

alphabet = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

partialTwo = ""

newAlphabet = ""

melding = input ("Skriv inn meldingen du vil oversette:").lower ()

key = int (input ("Vennligst skriv inn tallet du vil flytte med:"))

Trinn 2: Opprette det nye alfabetet

Opprette det nye alfabetet
Opprette det nye alfabetet

Nå for å lage det skiftede alfabetet. For å gjøre dette, vil vi bruke delsystemet. Delsystemet er hvor datamaskinen deler alfabetet i to deler (en fancy måte å si deler på). Den første delen er imidlertid lang du ba programmet om å skifte forbi, og den andre er resten. Datamaskinen bytter partialene. Det er akkurat det koden gjør, sammen med den første setningen, som sier at hvis skiftet er 0, er det nye alfabetet og det gamle alfabetet det samme siden du ikke bytter noe.

For eksempel:

Sekvens - 123456789

Delvis en - 123; Del to - 456789

Ny sekvens - 456789123

KODE:

hvis nøkkel == 0:

newAlphabet = alfabet

elif -nøkkel> 0:

partialOne = alfabet [: nøkkel]

partialTwo = alfabet [nøkkel:]

newAlphabet = partialTwo + partialOne

ellers:

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

partialTwo = alfabet [(26 + tast):]

newAlphabet = partialTwo + partialOne

Trinn 3: Skifte melding

Flytte meldingen
Flytte meldingen

Nå har vi vårt alfabet og det nye alfabetet. Det eneste som gjenstår er å bytte meldingen til koden.

Først setter vi en ny variabel og kaller den 'kryptert' og setter den til "". Deretter skriver vi en veldig komplisert for-loop som sjekker hver bokstav i meldingen og bytter den til den nye bokstaven. Den sender ut resultatet, og der har du det, en vellykket konvertert kode!

KODE:

encrypted = "" for message_index i området (0, len (melding)):

hvis melding [message_index] == "":

kryptert+= ""

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

hvis melding [melding_indeks] == alfabet [alfabet_indeks]:

kryptert+= newAlphabet [alphabet_index]

skrive ut (kryptert)

Trinn 4: Tillegg

Ytterligere
Ytterligere
Ytterligere
Ytterligere

Vedlagt er kodefilen.

Anbefalt: