使用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示例。你可以根据需要对示例代码进行修改以满足自己的需求。
