用python解决维吉尼亚算法
时间: 2024-10-08 09:03:43 浏览: 39
维吉尼亚密码(Vigenère cipher),又称为加权字母表法,是一种历史悠久的加密技术。在Python中,我们可以利用循环和字符串操作来实现维吉尼亚加密。以下是一个简单的Python代码示例,用于加密和解密:
```python
def encrypt(text, key):
encrypted_text = ""
key_length = len(key)
for i in range(len(text)):
shift = ord(key[i % key_length]) # 循环处理关键字长度
encrypted_text += chr((ord(text[i]) + shift - 65) % 26 + 65) # A=65, 加上shift并保持在大写字母范围内
return encrypted_text
def decrypt(encrypted_text, key):
return encrypt(encrypted_text, key)
# 示例
plain_text = "HELLO"
key = "SECRET"
encrypted = encrypt(plain_text, key)
decrypted = decrypt(encrypted, key)
print(f"原文: {plain_text}")
print(f"加密: {encrypted}")
print(f"解密: {decrypted}\n")
```
在这个例子中,`encrypt`函数接受明文和密钥,通过将每个字符按照密钥中的字符进行位移来加密。`decrypt`则是逆过程,对加密后的文本再做一次同样的位移。
阅读全文