实验描述
凯撒加密算法的原理:把明文中每个英文字母替换为该字母在字母表中后面第k个字母,如果后面第k个字符超过字母表范围,则把字母表首尾相接,也就是字母Z的下一个字母是A,字母z的下一个字母是a。要求明文中的大写字母和小写字母分别进行处理,大写字母加密后仍为大写字母,小写字母加密后仍为小写字母。
编写程序,输入一个字符串作为待加密的明文,然后输入一个整数作为凯撒加密算法的密钥,最后输出该字符串使用该密钥加密后的结果。
代码实现
import string
def kaisa(s, k):
# 小写字母
lower = string.ascii_lowercase
# 大写字母
upper = string.ascii_uppercase
before = string.ascii_letters
after = lower[k:] + lower[:k] + upper[k:] + upper[:k]
# 创建映射表
table = ''.maketrans(before, after)
# 返回加密结果
return s.translate(table)
s = input('请输入一个字符串:')
k = int(input('请输入一个整数秘钥:'))
print(kaisa(s, k))