维吉尼亚密码的解码源码
维吉尼亚密码
先介绍一下什么是维吉尼亚密码
好了不解释了,大概率你们是来抄作业的QAQ,还是直接上代码吧
源代码
def get_key(key, chr_list):
#得到密钥的移动位置
key_list = []
for i in key:
key_list.append(chr_list.index(i))
return key_list
def encode_vjny(code, key_list, chr_list):
#解密维吉尼亚密码
str_len = len(code)
key_len = len(key_list)
answer = []
for i in range(str_len):
place = chr_list.index(code[i]) #当前字母的模除位置
move = i % key_len
move_step = key_list[move]
ori = chr_list[place - move_step]
answer.append(ori)
print("".join(answer))
def init_chr_list():
chr_list = []
for i in range(26):
chr_list.append(chr(97 + i))
return chr_list
if __name__ == "__main__":
chr_list = init_chr_list()
key_list = []
key = input("请输入密钥:")
code = input("请输入密文:")
key_list = get_key(key, chr_list)
encode_vjny(code, key_list, chr_list)
实验结果
至于加密算法,留给你们自己去想吧。(提示一下,改动一点点就行了)