凯撒密码暴力破解的算法实现(python)


凯撒密码暴力破解的算法实现(python)

#凯撒密码破解
message='guv6Jv6Jz!J6rp5r7Jzr66ntrM'
SYMBOLS='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !?.'

#循环遍历所有可能的KEY
for key in range(len(SYMBOLS)):
    #将translateed设置为空字符串很重要
    #translated的值
    translated=''

    #其余部分和凯撒相同

    #循环遍历message中的每一个字符
    for symbol in message:
        # 注意:只能加解密SYMBOLS字符串中的符号
        if symbol in SYMBOLS:
            symbolIndex = SYMBOLS.find(symbol)

            # 执行解密

            translatedIndex = symbolIndex - key

            # 如果需要,执行回环
            if  translatedIndex<0:
                translatedIndex = translatedIndex + len(SYMBOLS)

            translated = translated + SYMBOLS[translatedIndex]

        else:
            # 添加未加解密的字符
            translated = translated + symbol
    #显示每一个可能的解密值
    print('Key #%s:%s'%(key,translated))#凯撒密码


#要加解密的字符串
message='This is my secret message.'

#加解密密钥
key=13

#程序是加密还是解密
mode='encrypt' #设置为encrypt或decrypt

#可能被加解密的符号
SYMBOLS='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !?.'

#存储消息的加解密形式
translated=''

for symbol in message:
    #注意:只能加解密SYMBOLS字符串中的符号
    if symbol in SYMBOLS:
        symbolIndex=SYMBOLS.find(symbol)

        #执行加解密
        if mode =='encrypt':
            translatedIndex=symbolIndex+key
        if mode =='decrypt':
            translatedIndex=symbolIndex-key

        #如果需要,执行回环
        if translatedIndex>=len(SYMBOLS):
            translatedIndex=translatedIndex-len(SYMBOLS)
        elif translatedIndex <= 0:
            translatedIndex=translatedIndex+len(SYMBOLS)

        translated=translated+SYMBOLS[translatedIndex]

    else:
        #添加未加解密的字符
        translated=translated+symbol

    #输出translated字符串
print(translated)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM