Text Practice Mode
Python program - Caesar cipher
created May 13th 2020, 13:39 by Angadeon
4
129 words
62 completed
5
Rating visible after 3 or more votes
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')
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 ...