python简单实现vigenere加密

网络安全作业,由于数学差,计算容易算错,所以写短代码完成作业。

letter_list='ABCDEFGHIJKLMNOPQRSTUVWXYZ'  #字母表
# 创建vigenere表
vig_list=[]
for i in range(len(letter_list)):
    vig_list.append([letter_list[i:]+letter_list[:i]])
# 创建字母对照哈希表
let_list={}
for i in range(len(letter_list)):
    let_list[letter_list[i]]=i
def vigenere(str,key):
    '''
    
    :param str: 明文 string
    :param key: 密钥 string
    :return: 密文 string
    '''
    l1,l2=[],[]
    # 大写并去除空格
    for i in str.upper().replace(' ',''):
        l1.append(let_list[i])
    for i in key.upper().replace(' ',''):
        l2.append(let_list[i])
    # 输出字符串
    out_str=''
    for i in range(len(l1)):
        j=i%len(l2)
        # 利用索引直接找到每个字符并组合
        out_str+=vig_list[l1[i]][0][l2[j]]
    return out_str

result=vigenere('this cryptosystem is not secure','cipher')
print(result)

你可能感兴趣的:(python,python)