python
2026-05-17 21:11:08
发布于:江苏
0阅读
0回复
0点赞
def main():
key = input().strip()
cipher = input().strip()
key_len = len(key)
# 将密钥转换为数字偏移(0-25),不区分大小写
key_nums = [ord(ch.lower()) - ord('a') for ch in key]
plain_chars = []
for i, ch in enumerate(cipher):
# 判断原始密文字符的大小写
is_upper = ch.isupper()
# 密文字母对应的数字(大写形式)
c_num = ord(ch.upper()) - ord('A')
# 获取当前密钥偏移
k_num = key_nums[i % key_len]
# 解密:明文字母数字 = (密文数字 - 密钥数字) mod 26
p_num = (c_num - k_num) % 26
# 转换回字母并保持大小写
plain_char = chr(p_num + ord('A'))
if not is_upper:
plain_char = plain_char.lower()
plain_chars.append(plain_char)
print(''.join(plain_chars))
if __name__ == "__main__":
main()
这里空空如也

有帮助,赞一个