凯撒密码加密,解密的实现,可以在项目上使用
import string
"""
凯撒密码:
本质:
A B C D E
A B C D E
移动一定的位置后,获取对应移动后的字符,这里面的‘偏移量就是2也就是shift=2
生成key
代码说明;
upperchar26=string.ascii_uppercase #获取26个大写字母的字符串
keydic={} 获取一个字典keydic={原始字符:移动后的字符},后期加密或者解密使用的对应字典
gennerate_key(shift) 里面的shift是偏移量
keydic[char]=upperchar26[(num+shift)%len(upperchar26)]-->keydic={原始字符:移动后的字符}
shift=2后
generate_key产生的结果,都是偏移了两位
{'A': 'C', 'B': 'D', 'C': 'E', 'D': 'F', 'E': 'G', 'F': 'H', 'G': 'I', 'H': 'J', 'I': 'K', 'J': 'L', 'K': 'M', 'L': 'N', 'M': 'O', 'N': 'P', 'O': 'Q', 'P': 'R', 'Q': 'S', 'R': 'T', 'S': 'U', 'T': 'V', 'U': 'W', 'V': 'X', 'W': 'Y', 'X': 'Z', 'Y': 'A', 'Z': 'B'}
"""
def generate_key(shift):
upperchar26 = string.ascii_uppercase
keydic = {}
num = 0
for char in upperchar26:
keydic[char] = upperchar26[(num + shift) % len(upperchar26)]
num += 1
return keydic
"""
加密函数,参数message是需要加密的字符串
从’message‘需要加密的字符串中遍历取出所有字符串--->
判断取出的每个字符是不是在keydic这个字典中,如果在里面