#########################Vigenere密码#########################
letter_list='ABCDEFGHIJKLMNOPQRSTUVWXYZ' #字母表
#根据输入的key生成key列表
def Get_KeyList(key):
key_list=[]
for ch in key:
key_list.append(ord(ch.upper())-65)
return key_list
#加密函数
def Encrypt(plaintext,key_list):
ciphertext=""
i=0
for ch in plaintext: #遍历明文
if 0==i%len(key_list):
i=0
if ch.isalpha(): #明文是否为字母,如果是,则判断大小写,分别进行加密
if ch.isupper():
ciphertext+=letter_list[(ord(ch)-65+key_list[i]) % 26]
i+=1
else:
ciphertext+=letter_list[(ord(ch)-97+key_list[i]) % 26].lower()
i+=1
else: #如果密文不为字母,直接添加到密文字符串里
ciphertext+=ch
return ciphertext
#解密函数
def Decrypt(ciphertext,key):
plaintext=""
i=0
for ch in ciphertext: #遍历密文
if 0==i%len(key_list):
i=0
if ch.isalpha(): #密文
Vigenere密码 Python实现
最新推荐文章于 2024-08-07 10:05:32 发布
本文介绍了如何使用Python实现Vigenere密码的加密和解密功能。通过定义Get_KeyList、Encrypt和Decrypt三个函数,实现了根据输入的密钥进行字母加密和解密的完整过程。用户可以选择加密(D)或解密(E),并输入相应的明文或密文进行操作。
摘要由CSDN通过智能技术生成