写一个基于文件加密工具的python代码
时间: 2024-02-06 18:02:33 浏览: 22
当然可以!以下是一个简单的基于文件加密的Python代码示例:
```python
from cryptography.fernet import Fernet
# 生成加密密钥
def generate_key():
key = Fernet.generate_key()
with open("key.key", "wb") as key_file:
key_file.write(key)
# 加载密钥
def load_key():
return open("key.key", "rb").read()
# 加密文件
def encrypt_file(filename, key):
fernet = Fernet(key)
with open(filename, "rb") as file:
file_data = file.read()
encrypted_data = fernet.encrypt(file_data)
with open(filename, "wb") as encrypted_file:
encrypted_file.write(encrypted_data)
# 解密文件
def decrypt_file(filename, key):
fernet = Fernet(key)
with open(filename, "rb") as encrypted_file:
encrypted_data = encrypted_file.read()
decrypted_data = fernet.decrypt(encrypted_data)
with open(filename, "wb") as decrypted_file:
decrypted_file.write(decrypted_data)
# 生成密钥
generate_key()
# 加载密钥
key = load_key()
# 加密文件
encrypt_file("plain.txt", key)
# 解密文件
decrypt_file("plain.txt", key)
```
上述代码使用了 `cryptography` 库中的 `Fernet` 加密算法来实现文件加密和解密功能。首先通过 `generate_key` 函数生成一个加密密钥,并将其保存到名为 `key.key` 的文件中。然后,通过 `load_key` 函数加载该密钥。
`encrypt_file` 函数用于加密指定的文件,它使用 `Fernet` 对象和密钥对文件进行加密,并将加密后的数据保存回原文件。
`decrypt_file` 函数用于解密指定的文件,它使用 `Fernet` 对象和密钥对加密的文件进行解密,并将解密后的数据保存回原文件。
最后,代码示例中演示了如何生成密钥、加密文件以及解密文件。你可以根据需要修改代码以适应自己的需求。记得在运行代码前安装 `cryptography` 库,可以通过 `pip install cryptography` 命令进行安装。