kaiser密码
Kaiser密码加密解密思路思路:
1、先将明文字母转换为ASCII码,小写字母97-122,大写字母65-90。再将其减去97或65,即可得到0-25之间的数字
2、根据加密或解密的公式解密。再用类似的方法把0-25之间的数字转化为字母
代码块:
"""凯撒密码"""
"""不区分大小写的凯撒密码"""
def encryption(s, key):
"""kaiser密码加密"""
lt = len(s)
s = list(s) # 将字符串转换成列表进行操作
for i in range(lt):
"""转换成ascii码并进行运算"""
num = ord(s[i]) # 获取每个字母的ascii值
"""进行Kaiser密码加密时默认明文为小写密文为大写"""
num = (num - 97 + key) % 26 + 65
# 将运算好的密文转换成大写
c = chr(num)
s[i] = c
print(s)
def decrypt(s, key):
"""kaiser密码解密"""
lt = len(s)
s = list(s)
for i in range(lt):
"""转换成ascii码并进行运算"""
num = ord(s[i])
num = (num - 65 - key) % 26 + 97
c = chr(num)
s[i] = c
print(s)
if __name__ == '__main__':
while True:
print('1:加密 \n2:解密 \n3:破译')
ty = input("请输入模式")
if ty == "1":
a = input("请输入明文")
k = int(input("请输入密钥"))
encryption(a, k)
elif ty == "2":
a = input("请输入密文")
k = int(input("请输入密钥"))
decrypt(a, k)
elif ty == "3":
a = input("请输入密文")
decipher(a)