Vigenere密码 Python实现

本文介绍了如何使用Python实现Vigenere密码的加密和解密功能。通过定义Get_KeyList、Encrypt和Decrypt三个函数,实现了根据输入的密钥进行字母加密和解密的完整过程。用户可以选择加密(D)或解密(E),并输入相应的明文或密文进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#########################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():  #密文
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值