【密码学 | CTF】培根密码

原理简述

【密码学 | CTF】培根密码_第1张图片

加密方式有两种,但说实话我没看懂第二种的;i-j和u-v是怎么加密的呢?一解密岂不是乱了?

但解密用第一种方式就行了,每五个切割,对照字典解密即可,难度很小

def 培根密码_解密():

    培根密码_字典_大写 = {
        'A':"AAAAA","AAAAA":'A',
        'B':"AAAAB",'AAAAB':'B',
        'C':"AAABA",'AAABA':'C',
        'D':"AAABB",'AAABB':'D',
        'E':"AABAA",'AABAA':'E',
        'F':"AABAB",'AABAB':'F',
        'G':'AABBA','AABBA':'G',
        'H':"AABBB",'AABBB':"H",
        'I':"ABAAA",'ABAAA':'I',
        'J':"ABAAB",'ABAAB':'J',
        'K':"ABABA",'ABABA':'K',
        'L':"ABABB",'ABABB':'L',
        'M':"ABBAA",'ABBAA':'M',
        'N':"ABBAB",'ABBAB':'N',
        'O':"ABBBA",'ABBBA':'O',
        'P':"ABBBB",'ABBBB':'P',
        'Q':'BAAAA','BAAAA':'Q',
        'R':'BAAAB','BAAAB':'R',
        'S':'BAABA','BAABA':'S',
        'T':'BAABB','BAABB':'T',
        'U':'BABAA','BABAA':'U',
        'V':'BABAB','BABAB':'V',
        'W':"BABBA",'BABBA':'W',
        'X':'BABBB','BABBB':'X',
        'Y':'BBAAA','BBAAA':'Y',
        'Z':'BBAAB','BBAAB':'Z'
    }

    密文 = input("请输入密文:")

    list = []
    while True:
        list.append(密文[0:5])
        密文 = 密文.replace(密文[0:5],'',1)
        if 密文 == '':
            break

    结果 = []
    for i in list:
        结果.append(培根密码_字典_大写[i])
        
    print("培根密码解密后:","".join(结果).lower())

培根密码_解密()

你可能感兴趣的:(CTF,python)