Python代码实现凯撒密码的暴力解密(循环)

凯撒密码的原理是将明文进行数位位移,在位移数未知的情况下我们选择循环的方式对所有可能的情况进行测试,再从中筛选最合适的文本作为明文

代码如下:

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

译文:生活就像一盒巧克力,你永远不知道会得到什么

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值