Innehållsförteckning:

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

Video: Caesar Cipher -program i Python: 4 steg

Video: Caesar Cipher -program i Python: 4 steg
Video: Cryptograph: Substitution Cipher (Caesar Cipher) 2024, November
Anonim
Caesar Cipher -program i Python
Caesar Cipher -program i Python

Caesar Cipher är en gammal och mycket använd kryptering som är lätt att kryptera och dekryptera. Det fungerar genom att flytta bokstäverna i alfabetet för att skapa ett helt nytt alfabet (ABCDEF kan skifta över 4 bokstäver och skulle bli EFGHIJ).

Caesar Ciphers är inte de säkraste chifferna där ute men är bra för små uppgifter som att skicka hemliga anteckningar eller göra lösenord lite starkare. Det är verkligen lätt att dechiffrera koden, men det kan vara tråkigt att kryptera en om du inte har det speciella alfabetet memorerat.

För att göra denna process enklare kan vi använda kraften hos datorer, närmare bestämt programmeringsspråket Python.

Denna instruktionsbok visar dig hur du skapar ett program som konverterar meddelanden till en kryptering på ditt kommando.

Tillbehör

Allt du behöver är en Python -tolk: IDLE, Pycharm och Thonny är några bra, gratis alternativ (jag använde Pycharm)

Grundläggande kunskaper i Python

Steg 1: Deklarera variabler och få inmatningar

Deklarera variabler och få inmatningar
Deklarera variabler och få inmatningar

För att faktiskt lagra strängvärdena (text) för alfabetet, meddelandet, skiftet etc. måste vi använda variabler. Vi börjar med att deklarera variablerna 'alphabet', 'partialOne', 'partialTwo' och 'newAlphabet'. Jag har skrivit namnen på variablerna i Camel Case i min kod (det första ordet är gemener och andra versaler) men du kan skriva det hur du vill, så länge du kommer ihåg att ändra det under resten av koden också. Alfabetvariabeln har värdet "abcdefghijklmnopqrstuvwxyz". Alla andra variabler är inställda på "", vilket är en tom sträng eftersom vi ännu inte har deras värden.

Vad detta gör är att konfigurera Partial -systemet, vilket är vad vi använder för att faktiskt skapa skiftet. Detta kommer att förklaras i ett senare steg.

Efter detta måste vi få meddelandet och flytta värdet från användaren. Vi använder inmatningsfunktionen för att göra detta. Denna del av koden ber användaren om ett meddelande och ett nummer för att flytta alfabetet med.

KODA:

alphabet = "abcdefghijklmnopqrstuvwxyz"

partiellOne = ""

partialTwo = ""

newAlphabet = ""

meddelande = input ("Ange meddelandet du vill översätta:").lower ()

key = int (input ("Ange det nummer du vill flytta med:"))

Steg 2: Skapa det nya alfabetet

Skapa det nya alfabetet
Skapa det nya alfabetet

Nu för att skapa det skiftade alfabetet. För att göra detta kommer vi att använda delsystemet. Delsystemet är där datorn delar upp alfabetet i två partialer (ett fint sätt att säga delar). Den första delen är dock lång du sa till programmet att byta förbi, och den andra är resten. Datorn byter partial. Det är exakt vad koden gör, tillsammans med det första påståendet, som säger att om skiftet är 0 är det nya alfabetet och det gamla alfabetet detsamma eftersom du inte byter någonting.

Till exempel:

Sekvens - 123456789

Partial One - 123; Del två - 456789

Ny sekvens - 456789123

KODA:

if nyckel == 0:

newAlphabet = alfabet

elif -nyckel> 0:

partialOne = alfabetet [: key]

partialTwo = alfabetet [key:]

newAlphabet = partialTwo + partialOne

annan:

partialOne = alfabetet [:(26 + nyckel)]

partiellTvå = alfabetet [(26 + tangent):]

newAlphabet = partialTwo + partialOne

Steg 3: Ändra meddelandet

Flytta meddelandet
Flytta meddelandet

Nu har vi vårt alfabet och det nya alfabetet. Allt som återstår är att byta meddelande till koden.

Först ställer vi in en ny variabel och kallar den 'krypterad' och ställer den till "". Sedan skriver vi en riktigt komplicerad for-loop som kontrollerar varje bokstav i meddelandet och byter den till den nya bokstaven. Det matar ut resultatet och där har du det, en framgångsrikt konverterad kod!

KODA:

encrypted = "" för message_index inom intervall (0, len (meddelande)):

if meddelande [message_index] == "":

krypterad+= ""

för alphabet_index inom intervall (0, len (newAlphabet)):

om meddelande [message_index] == alfabetet [alphabet_index]:

krypterad+= newAlphabet [alphabet_index]

skriva ut (krypterat)

Steg 4: Ytterligare

Ytterligare
Ytterligare
Ytterligare
Ytterligare

Kodfilen bifogas.

Rekommenderad: