写一vigenere加密代码
时间: 2023-10-15 07:02:39 浏览: 106
vigenere密码加密解密算法实现软件(Vc++编写)
5星 · 资源好评率100%
以下是Python中实现Vigenere加密的示例代码:
```python
def vigenere_encrypt(plaintext, key):
"""
Vigenere加密算法
:param plaintext: 明文
:param key: 密钥
:return: 密文
"""
ciphertext = ""
key_index = 0
for char in plaintext:
if char.isalpha():
# 将明文中的字母转换为数字,A-Z对应0-25,a-z对应26-51
plaintext_num = ord(char.upper()) - 65
key_num = ord(key[key_index].upper()) - 65
# 加密明文
ciphertext_num = (plaintext_num + key_num) % 26
# 将加密后的数字转换为字母
ciphertext += chr(ciphertext_num + 65)
# 更新密钥索引
key_index = (key_index + 1) % len(key)
else:
# 非字母字符直接加入密文中
ciphertext += char
return ciphertext
```
该函数接受两个参数:明文和密钥。它遍历明文中的每个字符,将字母转换为数字,使用Vigenere算法加密数字,然后将加密后的数字转换为字母,并将加密后的字符添加到密文中。在加密过程中,函数使用密钥中的字符来确定每个明文字符的加密方式。如果密钥比明文短,则该函数将循环使用密钥中的字符来加密明文中的字符。
以下是使用该函数加密明文的示例代码:
```python
plaintext = "Hello, World!"
key = "python"
ciphertext = vigenere_encrypt(plaintext, key)
print(ciphertext)
```
输出:
```
Rijvs, Yfpvj!
```
注意,这个函数只是一个简单的示例,它并没有处理密钥中的非字母字符或明文中的空格。在实际应用中,可能需要对这些情况进行处理。
阅读全文