凯撒密码的原理是将明文进行数位位移,在位移数未知的情况下我们选择循环的方式对所有可能的情况进行测试,再从中筛选最合适的文本作为明文
代码如下:
def decrypt_caesar_cipher(text, key):
result = ""
for char in text:
if char.isalpha(): # 检查字符是否是字母
# 对字母进行解密
ascii_offset = 97 if char.islower() else 65
decrypted_char = chr((ord(char) - ascii_offset + key) % 26 + ascii_offset)
result += decrypted_char
else:
result += char # 如果不是字母,直接添加到结果中
return result
# 输入文本
text = input("请输入加密的文本: ")
for key in range(1,26):
# 解密文本
decrypted = decrypt_caesar_cipher(text, key)
# 打印解密结果
print("解密后的文本: 位移",key,"位的结果:", decrypted)
运行结果如下:
其中位移10个字母得到的结果是能够理解的,所以这段密文最终解密得到的明文是:
life was like a box of chocolates you never know what you are gonna get
译文:生活就像一盒巧克力,你永远不知道会得到什么