维吉尼亚加密解密算法代码
时间: 2024-03-10 10:41:55 浏览: 298
维吉尼亚加密算法是一种经典的对称加密算法,它使用了一个密钥和一个明文来生成密文。下面是一个简单的维吉尼亚加密解密算法的示例代码:
```python
def vigenere_encrypt(plain_text, key):
encrypted_text = ""
key_index = 0
for char in plain_text:
if char.isalpha():
shift = ord(key[key_index % len(key)].upper()) - ord('A')
if char.isupper():
encrypted_text += chr((ord(char) - ord('A') + shift) % 26 + ord('A'))
else:
encrypted_text += chr((ord(char) - ord('a') + shift) % 26 + ord('a'))
key_index += 1
else:
encrypted_text += char
return encrypted_text
def vigenere_decrypt(encrypted_text, key):
decrypted_text = ""
key_index = 0
for char in encrypted_text:
if char.isalpha():
shift = ord(key[key_index % len(key)].upper()) - ord('A')
if char.isupper():
decrypted_text += chr((ord(char) - ord('A') - shift) % 26 + ord('A'))
else:
decrypted_text += chr((ord(char) - ord('a') - shift) % 26 + ord('a'))
key_index += 1
else:
decrypted_text += char
return decrypted_text
```
使用上述代码,你可以调用`vigenere_encrypt`函数来对明文进行加密,调用`vigenere_decrypt`函数来对密文进行解密。其中,`plain_text`参数为明文,`encrypted_text`参数为密文,`key`参数为密钥。
阅读全文