暴力破解凯撒密码 python代码

本文详细解释了凯撒密码的破解原理,包括频率分析和字母替换方法,并展示了通过Python代码进行暴力破解的过程。同时,强调了凯撒密码在现代信息安全中的不足,以及更安全加密算法的应用.
摘要由CSDN通过智能技术生成

暴力破解凯撒密码

凯撒密码破解原理主要是通过对密文进行频率分析、统计分析和字母替换等方法来破解。

具体来说,破解者可以通过对密文中每个字母出现的频率进行统计和分析,找出出现频率最高的字母,并将其替换为最可能的明文字母。然后,可以继续对其他字母进行分析和替换,逐步还原出完整的明文。此外,还可以使用一些统计学方法来分析字母之间的关联性,从而进一步帮助破解者确定某些字母的明文对应。

然而,需要注意的是,随着现代密码学的发展和技术进步,凯撒密码等简单加密技术已经被认为是不安全的,容易被现代计算机快速破解。因此,在现代通信和信息安全领域,更加复杂和安全的加密算法被广泛使用。

在此,我们通过遍历的方式对凯撒密码进行暴力破解。

代码部分:

#凯撒密码暴力破解
message='kaisamimabaolipojie'
SYMBOLS='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !?.'
for key in range(len(SYMBOLS)):
    translated=''
    # 遍历原始消息中的每个字符
    for symbol in message:
        # 如果字符在凯撒密码的字符集中
        if symbol in SYMBOLS:
            # 找出字符在字符集中的索引位置
            symbolIndex = SYMBOLS.find(symbol)
            # 根据凯撒密码的偏移量,计算翻译后的字符在字符集中的索引位置
            translatedIndex = symbolIndex - key
            # 如果计算出的索引位置小于0,表示需要循环回到字符集的末尾
            if translatedIndex < 0:
                translatedIndex = translatedIndex + len(SYMBOLS)
                # 将翻译后的字符添加到翻译后的消息中
            translated = translated + SYMBOLS[translatedIndex]
        else:
            # 如果字符不在凯撒密码的字符集中,则直接添加到翻译后的消息中
            translated = translated + symbol
            # 打印出当前的偏移量以及对应的翻译后的消息
    print('Key #%s: %s' % (key, translated))
                

结果展示

Key #0: kaisamimabaolipojie
Key #1: jZhrZlhlZaZnkhonihd
Key #2: iYgqYkgkYZYmjgnmhgc
Key #3: hXfpXjfjXYXlifmlgfb
Key #4: gWeoWieiWXWkhelkfea
Key #5: fVdnVhdhVWVjgdkjedZ
Key #6: eUcmUgcgUVUifcjidcY
Key #7: dTblTfbfTUThebihcbX
Key #8: cSakSeaeSTSgdahgbaW
Key #9: bRZjRdZdRSRfcZgfaZV
Key #10: aQYiQcYcQRQebYfeZYU
Key #11: ZPXhPbXbPQPdaXedYXT
Key #12: YOWgOaWaOPOcZWdcXWS
Key #13: XNVfNZVZNONbYVcbWVR
Key #14: WMUeMYUYMNMaXUbaVUQ
Key #15: VLTdLXTXLMLZWTaZUTP
Key #16: UKScKWSWKLKYVSZYTSO
Key #17: TJRbJVRVJKJXURYXSRN
Key #18: SIQaIUQUIJIWTQXWRQM
Key #19: RHPZHTPTHIHVSPWVQPL
Key #20: QGOYGSOSGHGUROVUPOK
Key #21: PFNXFRNRFGFTQNUTONJ
Key #22: OEMWEQMQEFESPMTSNMI
Key #23: NDLVDPLPDEDROLSRMLH
Key #24: MCKUCOKOCDCQNKRQLKG
Key #25: LBJTBNJNBCBPMJQPKJF
Key #26: KAISAMIMABAOLIPOJIE
Key #27: J.HR.LHL.A.NKHONIHD
Key #28: I?GQ?KGK?.?MJGNMHGC
Key #29: H!FP!JFJ!?!LIFMLGFB
Key #30: G EO IEI ! KHELKFEA
Key #31: F0DN0HDH0 0JGDKJED.
Key #32: E9CM9GCG909IFCJIDC?
Key #33: D8BL8FBF898HEBIHCB!
Key #34: C7AK7EAE787GDAHGBA 
Key #35: B6.J6D.D676FC.GFA.0
Key #36: A5?I5C?C565EB?FE.?9
Key #37: .4!H4B!B454DA!ED?!8
Key #38: ?3 G3A A343C. DC! 7
Key #39: !20F2.0.232B?0CB 06
Key #40:  19E1?9?121A!9BA095
Key #41: 0z8Dz!8!z1z. 8A.984
Key #42: 9y7Cy 7 yzy?07.?873
Key #43: 8x6Bx060xyx!96?!762
Key #44: 7w5Aw959wxw 85! 651
Key #45: 6v4.v848vwv074 054z
Key #46: 5u3?u737uvu9630943y
Key #47: 4t2!t626tut8529832x
Key #48: 3s1 s515sts7418721w
Key #49: 2rz0r4z4rsr63z761zv
Key #50: 1qy9q3y3qrq52y65zyu
Key #51: zpx8p2x2pqp41x54yxt
Key #52: yow7o1w1opo3zw43xws
Key #53: xnv6nzvznon2yv32wvr
Key #54: wmu5myuymnm1xu21vuq
Key #55: vlt4lxtxlmlzwt1zutp
Key #56: uks3kwswklkyvszytso
Key #57: tjr2jvrvjkjxuryxsrn
Key #58: siq1iuquijiwtqxwrqm
Key #59: rhpzhtpthihvspwvqpl
Key #60: qgoygsosghgurovupok
Key #61: pfnxfrnrfgftqnutonj
Key #62: oemweqmqefespmtsnmi
Key #63: ndlvdplpdedrolsrmlh
Key #64: mckucokocdcqnkrqlkg
Key #65: lbjtbnjnbcbpmjqpkjf

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qinquanquan_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值