Python实现一个简单的文件加密解密工具
发布时间:2023-12-04 17:36:59
文件加密解密工具是通过对文件进行加密和解密操作,保护文件的安全性。下面是一个使用Python实现的简单的文件加密解密工具及其使用例子。
import os
from cryptography.fernet import Fernet
class FileEncryptor:
def __init__(self, key):
self.key = key
def encrypt_file(self, file_path):
with open(file_path, 'rb') as f:
data = f.read()
fernet = Fernet(self.key)
encrypted_data = fernet.encrypt(data)
with open(file_path, 'wb') as f:
f.write(encrypted_data)
def decrypt_file(self, file_path):
with open(file_path, 'rb') as f:
encrypted_data = f.read()
fernet = Fernet(self.key)
decrypted_data = fernet.decrypt(encrypted_data)
with open(file_path, 'wb') as f:
f.write(decrypted_data)
# 使用例子
# 生成密钥
key = Fernet.generate_key()
encryptor = FileEncryptor(key)
# 加密文件
file_path = 'example.txt'
encryptor.encrypt_file(file_path)
print('文件加密成功!')
# 解密文件
encryptor.decrypt_file(file_path)
print('文件解密成功!')
在上述代码中,我们使用了cryptography库的Fernet类来生成密钥和进行加密解密操作。Fernet使用了对称密钥加密算法,加密和解密过程中只需要使用同一个密钥即可。
首先,我们创建了一个FileEncryptor类,该类包含了一个密钥属性和加密解密文件的方法。在初始化时,我们传入一个密钥,并保存在属性self.key中。
encrypt_file方法用于加密文件。首先,使用open函数打开文件,将文件内容读取到变量data中。然后,创建一个Fernet对象,使用密钥对数据进行加密操作,生成加密后的数据encrypted_data。最后,使用open函数再次打开文件,将加密后的数据写入文件中。
decrypt_file方法用于解密文件。类似于加密操作,首先读取加密后的数据,然后创建一个Fernet对象,使用密钥对数据进行解密操作,生成解密后的数据decrypted_data。最后,使用open函数再次打开文件,将解密后的数据写入文件中。
使用例子中,首先生成了一个密钥,并使用该密钥创建了一个FileEncryptor对象。然后,调用encrypt_file方法对文件进行加密操作,输出加密成功的提示。接着,再次调用decrypt_file方法对文件进行解密操作,输出解密成功的提示。
以上就是一个简单的Python文件加密解密工具的实现及其使用例子。实际使用时,可能需要加入更多的错误处理和文件路径判断等逻辑,以保证程序的健壮性和可靠性。
