凯撒加密与解密及其python代码的实现

1.凯撒加密

凯撒加密通过移位的方式加密消息,最多有25种加密方式(最开始是24种,因为当时的字母一共是25个)
比如明文‘ i love china’移位2位加密后的暗文就是‘k nqxg ejkpc’

2.代码的实现

def change(c,i):
    c = c.lower()
    num = ord(c)
    if num >= 97 and num <= 122:
        num = 97 + ((num - 97) + i) % 26
    return chr(num)


def kaisa_jiami(string,i):
    string_new = ''
    for s in string:
        string_new += change(s,i)
    print(string_new)
    return string_new

def kaisa_jiemi(string):
    for i in range(25):
        print('\n', i, '\n')
        i += 1
        kaisa_jiami(string,i)


def main():
    print('请选择需要的操作:')
    print('1:凯撒加密')
    print('2:凯撒解密')
    choice = input()
    if choice == '1':
        string = input('请输入需要加密的字符串:')
        num = int(input('请输入需要偏移的位数:'))
        kaisa_jiami(string,num)
    elif choice == '2':
        string = input('请输入需要解密的字符串:')
        kaisa_jiemi(string)
    else:
        print('输入错误,请重试!')
        main()

if __name__ == '__main__':
    main()

3.效果

加密:
凯撒加密与解密及其python代码的实现_第1张图片

解密:
凯撒加密与解密及其python代码的实现_第2张图片

找到正确的明文:
凯撒加密与解密及其python代码的实现_第3张图片

你可能感兴趣的:(python,加密与解密)