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

使用Encrypter()进行文件加密与解密的Python示例

发布时间:2024-01-11 10:22:18

Encrypter()是一个文件加密和解密的Python类,通过该类,我们可以使用密码密钥对文件进行加密和解密。

以下是Encrypter()类的Python示例代码:

import os
from cryptography.fernet import Fernet

class Encrypter():
    def __init__(self, key_filename):
        self.key_filename = key_filename
        self.key = self.load_key()

    def generate_key(self):
        key = Fernet.generate_key()
        with open(self.key_filename, 'wb') as key_file:
            key_file.write(key)
    
    def load_key(self):
        if not os.path.exists(self.key_filename):
            self.generate_key()
        with open(self.key_filename, 'rb') as key_file:
            return key_file.read()
    
    def encrypt_file(self, filename):
        fernet = Fernet(self.key)
        with open(filename, 'rb') as file:
            file_data = file.read()
        encrypted_data = fernet.encrypt(file_data)
        with open(filename, 'wb') as file:
            file.write(encrypted_data)
    
    def decrypt_file(self, filename):
        fernet = Fernet(self.key)
        with open(filename, 'rb') as file:
            encrypted_data = file.read()
        decrypted_data = fernet.decrypt(encrypted_data)
        with open(filename, 'wb') as file:
            file.write(decrypted_data)

下面是Encrypter()类的使用示例:

# 创建Encrypter对象,并指定密钥文件名
encrypter = Encrypter('key.key')

# 加密文件
encrypter.encrypt_file('plaintext.txt')

# 解密文件
encrypter.decrypt_file('plaintext.txt')

在以上示例中,我们首先创建了一个Encrypter对象,传入密钥文件的名称。如果密钥文件不存在,将自动生成一个密钥文件。

然后,我们可以使用encrypt_file()方法对指定的文件进行加密,并使用decrypt_file()方法解密该文件。

需要注意的是,示例中的plaintext.txt文件将会被加密和解密。如果要加密和解密其他文件,请将文件名修改为相应的文件名。

以上就是使用Encrypter()进行文件加密与解密的Python示例。你可以根据需要对示例代码进行修改以满足自己的需求。