欢迎访问宙启技术站
智能推送

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文件加密解密工具的实现及其使用例子。实际使用时,可能需要加入更多的错误处理和文件路径判断等逻辑,以保证程序的健壮性和可靠性。