python为吉尼亚密码加密算法
时间: 2024-10-08 16:04:11 浏览: 38
计算机密码学试题
吉尼亚密码(Vigenere Cipher),也被称为维吉尼亚方阵,是一种古典的替换式加密技术。在Python中实现吉尼亚密码,通常会利用凯撒密码的思想,通过混合一系列简单的位移(比如字母表中的移动)来进行加密。这种算法的基本步骤如下:
1. **密钥循环**:选择一个固定长度的密钥,并将其反复使用,直到加密整个明文。
2. **字母替换**:对于每个明文字母,取其ASCII码加上密钥对应位置的字母的ASCII码,然后对字母表进行模运算(例如26),得到新的字母作为密文。
3. **处理空格和特殊字符**:原始文本中的空格、标点等保持不变,不会参与加密。
下面是一个简单的Python示例,假设我们有一个明文、密钥和字母表:
```python
def encrypt_vigenere(plaintext, key, alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ"):
encrypted_text = ""
for i in range(len(plaintext)):
if plaintext[i].isalpha():
shift = alphabet.index(key[i % len(key)]) # 循环密钥
new_index = (alphabet.index(plaintext[i]) + shift) % 26
encrypted_text += alphabet[new_index]
else:
encrypted_text += plaintext[i] # 保留非字母字符
return encrypted_text
# 示例
plaintext = "Hello, World!"
key = "KEY"
encrypted = encrypt_vigenere(plaintext, key)
print("Encrypted text:", encrypted)
```
阅读全文