python编写一个读取文件再输出文件的维吉尼亚密码加密和解密的算法
时间: 2023-05-15 12:05:40 浏览: 88
以下是一个简单的 Python 代码,用于读取文件并对其进行维吉尼亚密码加密和解密:
```python
def vigenere_cipher(key, message, mode):
"""
Vigenere cipher implementation.
:param key: The key to use for encryption/decryption.
:param message: The message to encrypt/decrypt.
:param mode: 'encrypt' or 'decrypt'.
:return: The encrypted/decrypted message.
"""
key_len = len(key)
key_as_int = [ord(i) for i in key]
message_as_int = [ord(i) for i in message]
key_index = 0
for i in range(len(message)):
if mode == 'encrypt':
message_as_int[i] += key_as_int[key_index]
elif mode == 'decrypt':
message_as_int[i] -= key_as_int[key_index]
key_index += 1
if key_index == key_len:
key_index = 0
return ''.join([chr(i) for i in message_as_int])
# 读取文件
with open('input.txt', 'r') as f:
message = f.read()
# 加密
key = 'SECRET'
encrypted_message = vigenere_cipher(key, message, 'encrypt')
# 输出加密后的文件
with open('encrypted.txt', 'w') as f:
f.write(encrypted_message)
# 解密
with open('encrypted.txt', 'r') as f:
encrypted_message = f.read()
decrypted_message = vigenere_cipher(key, encrypted_message, 'decrypt')
# 输出解密后的文件
with open('decrypted.txt', 'w') as f:
f.write(decrypted_message)
```
请注意,这只是一个简单的实现,不适用于加密敏感数据。如果您需要更安全的加密算法,请使用专业的加密库。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)