# encoding=UTF-8
class CaesarCipher:
"""class for doing encryption and decryption using a Caesar cipher"""
def __init__(self, shift):
"""construct caesar cipher using given integer shift for rotation"""
encoder = [None] * 26
decoder = [None] * 26
for k in range(26):
encoder[k] = chr((k + shift) % 26 + ord('A'))
decoder[k] = chr((k - shift) % 26 + ord('A'))
print(encoder)
print(decoder)
self._forward = ''.join(encoder)
self._backward = ''.join(decoder)
def encrypt(self, message):
"""return string representing encrypted message"""
return self._transform(message, self._forward)
def decrypt(self, secret):
"""return decrypted message given encrypted secret"""
return self._transform(secret, self._backward)
def _transform(self, original, code):
"""utility to perform transformation based on given code string"""
msg = list(original)
for k in range(len(msg)):
if msg[k].isupper():
j = ord(msg[k]) - ord('A')
msg[k] = code[j]
return ''.join(msg)
if __name__ == '__main__':
cipher = CaesarCipher(3)
massage = "THE EAGLE IS IN PLAY; MEET AT JOE's"
coded = cipher.encrypt(massage)
print(coded)
answer = cipher.decrypt(coded)
print(answer)
print([chr(ord('A')+i) for i in range(26)])
python实现凯撒密码
最新推荐文章于 2023-10-14 20:41:37 发布