维吉尼亚加解密python
时间: 2024-04-17 22:21:53 浏览: 57
维吉尼亚加解密是一种经典的密码学算法,用于对文本进行加密和解密。它是基于多表代换密码的一种改进,通过使用不同的密钥对不同位置的字符进行加密,增加了密码的复杂性和安全性。
在Python中,可以使用以下代码实现维吉尼亚加解密:
```python
def vigenere_encrypt(plaintext, key):
ciphertext = ""
key_index = 0
for char in plaintext:
if char.isalpha():
char = char.upper()
key_char = key[key_index % len(key)].upper()
encrypted_char = chr((ord(char) + ord(key_char) - 2 * ord('A')) % 26 + ord('A'))
ciphertext += encrypted_char
key_index += 1
return ciphertext
def vigenere_decrypt(ciphertext, key):
plaintext = ""
key_index = 0
for char in ciphertext:
if char.isalpha():
char = char.upper()
key_char = key[key_index % len(key)].upper()
decrypted_char = chr((ord(char) - ord(key_char) + 26) % 26 + ord('A'))
plaintext += decrypted_char
key_index += 1
return plaintext
```
使用上述代码,可以通过调用`vigenere_encrypt`函数进行加密,调用`vigenere_decrypt`函数进行解密。其中,`plaintext`参数为待加密的明文或待解密的密文,`key`参数为密钥。
阅读全文