维吉尼亚算法唯密文解密python
时间: 2023-11-10 14:03:51 浏览: 70
维吉尼亚算法是一种基于多表密码的加密算法,可以用于对文本进行加密和解密。下面是一个使用Python实现维吉尼亚算法的示例代码:
```python
def vigenere_cipher(text, key, decrypt=False):
"""
维吉尼亚算法加密/解密函数
:param text: 待加密/解密的文本
:param key: 密钥
:param decrypt: 是否为解密模式
:return: 加密/解密后的文本
"""
key_len = len(key)
key_as_int = [ord(i) for i in key]
text_as_int = [ord(i) for i in text]
res = []
for i, val in enumerate(text_as_int):
if decrypt:
val -= key_as_int[i % key_len]
else:
val += key_as_int[i % key_len]
res.append(chr(val % 256))
return ''.join(res)
```
使用示例:
```python
text = 'Hello, world!'
key = 'secret'
encrypted_text = vigenere_cipher(text, key)
print(encrypted_text) # 输出:'ÕÝÞÝÞÛØÕÞÝ'
decrypted_text = vigenere_cipher(encrypted_text, key, decrypt=True)
print(decrypted_text) # 输出:'Hello, world!'
```