eng
competition

Text Practice Mode

Python program - Caesar cipher

created May 13th 2020, 13:39 by Angadeon


4


Rating

129 words
62 completed
00:00
### Simple shifting 'Caesar' cipher
import random
from string import ascii_lowercase as letters
 
def randkey(alpha):
    newkey = ''
    for x in range(100):
        newkey += random.choice(alpha)
    return newkey
 
class Cipher(object):
    def __init__(self, key=False, alpha=letters):
        self.alpha = alpha
        self.key = key
        if self.key == False:
            self.key = randkey(self.alpha)
        else:
            self.key = key.lower()
 
    def encode(self, text):
        keyindex = 0
        text = text.strip().lower()
        text2 = ''
        for letter in text:
            text2 += self.alpha[(self.alpha.index(letter) + self.alpha.index(self.key[keyindex])) % len(self.alpha)]
            if keyindex == (len(self.key)-1):
                keyindex = 0
            else:
                keyindex += 1
        print(text2)
        return text2
 
    def decode(self, text):
        keyindex = 0
        text = text.strip().lower()
        text2 = ''
        for letter in text:
            text2 += self.alpha[(self.alpha.index(letter) - self.alpha.index(self.key[keyindex])) % len(self.alpha)]
            if keyindex == (len(self.key)-1):
                keyindex = 0
            else:
                keyindex += 1
        print(text2)
        return text2
 
c = Cipher('abcd')
c.encode('testtextABC')
c.decode('tfuwtfzwace')

saving score / loading statistics ...