Python编写案例:实现一个简单的文件加密/解密工具
发布时间:2023-12-04 17:58:56
下面是一个简单的文件加密/解密工具的Python代码实现,包括一个使用示例:
import os
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):
"""加密文件"""
f = Fernet(key)
with open(filename, 'rb') as file:
original_data = file.read()
encrypted_data = f.encrypt(original_data)
with open(filename, 'wb') as encrypted_file:
encrypted_file.write(encrypted_data)
def decrypt_file(filename, key):
"""解密文件"""
f = Fernet(key)
with open(filename, 'rb') as encrypted_file:
encrypted_data = encrypted_file.read()
decrypted_data = f.decrypt(encrypted_data)
with open(filename, 'wb') as decrypted_file:
decrypted_file.write(decrypted_data)
# 加密/解密示例
if __name__ == "__main__":
# 生成密钥
generate_key()
key = load_key()
# 加密文件
encrypt_file('example.txt', key)
# 解密文件
decrypt_file('example.txt', key)
上述代码使用了cryptography库提供的Fernet加密算法,首先生成一个加密密钥保存在key.key文件中。encrypt_file函数利用该密钥,对指定文件进行加密,并将加密后的数据保存在同名文件中。decrypt_file函数则是用同样的密钥对加密后的文件进行解密。
使用示例中,我们先生成密钥,然后利用该密钥对example.txt文件进行加密,加密后的结果保存在example.txt中。然后再对加密后的文件进行解密,结果保存在example.txt中。这样就完成了文件的加密和解密过程。
注意:为了保证安全性,在实际使用中应该妥善保管密钥文件,确保只有授权的人能够访问密钥。
