凯撒密码的解密过程_python

# 凯撒密码破解
# (BSD Licensed)

message = 'GUVF VF ZL FRPERG ZRFFNTR.'
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

# 把每个可能的密钥循环一遍
for key in range(len(LETTERS)):

    # key代表密钥
    # translated设为空字符串
    # 每次循环后清空.
    translated = ''

    # 

    # 密文里的每一个字符按顺序解密
    for symbol in message:
        if symbol in LETTERS:
            num = LETTERS.find(symbol) # 在26个字母里搜索到密文字符的位置
            num = num - key 

            # 检查是否小于0,如果小于0,就加上26
            if num < 0:
                num = num + len(LETTERS)

            # 把解密之后的字符追加到translated字符串的末尾
            translated = translated + LETTERS[num]

        else:
            # 密文里的symbol如果不在26个字母里,就不进行解密,直接追加到字符串末尾
            translated = translated + symbol

    # 输出解密采用的key和解密后的明文
    print('Key #%s: %s' % (key, translated))

 

posted @ 2020-02-28 15:31  dogfaraway  阅读(5066)  评论(0编辑  收藏  举报