简单易懂的教程:Python中使用cryptography.fernet加密和解密文件
在Python中,使用cryptography.fernet模块可以很方便地对文件进行加密和解密。本教程将向您介绍如何使用cryptography.fernet模块加密和解密文件,并提供一个简单的使用示例。
首先,您需要安装cryptography模块。您可以使用以下命令在终端上安装它:
pip install cryptography
一旦安装完毕,您可以开始使用cryptography.fernet模块了。
下面是一个简单的示例,展示了如何使用cryptography.fernet加密和解密文件:
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:
file_data = file.read()
encrypted_data = f.encrypt(file_data)
with open(filename, 'wb') as file:
file.write(encrypted_data)
# 解密文件
def decrypt_file(filename, key):
f = Fernet(key)
with open(filename, 'rb') as file:
encrypted_data = file.read()
decrypted_data = f.decrypt(encrypted_data)
with open(filename, 'wb') as file:
file.write(decrypted_data)
# 生成密钥
generate_key()
# 加载密钥
key = load_key()
# 加密文件
encrypt_file('plain.txt', key)
# 解密文件
decrypt_file('plain.txt', key)
上述示例中,首先我们定义了三个函数:generate_key(), load_key()和encrypt_file(), decrypt_file()。
generate_key()函数用来生成一个加密文件需要的密钥,并将其写入名为'key.key'的文件中。
load_key()函数用来加载密钥,即从'key.key'文件中读取密钥数据。
encrypt_file()函数用来加密文件。它首先通过提供的密钥构建一个Fernet对象,然后读取要加密的文件数据,并使用Fernet对象加密数据。最后,将加密后的数据写入原始文件中。
decrypt_file()函数用来解密文件。它的工作方式与encrypt_file()函数类似,只是使用Fernet对象来解密文件数据,并将解密后的数据写回原始文件。
在示例的最后,我们先调用generate_key()函数生成一个密钥,然后使用load_key()函数将其加载。接下来,我们使用encrypt_file()函数对名为'plain.txt'的文件进行加密,并使用decrypt_file()函数解密该文件。
请确保在运行示例代码之前,您已经创建了一个名为'plain.txt'的文件,并在其中包含了一些文本数据。
当您运行这段代码时,您将看到'plain.txt'文件已经被加密和解密,而且只有使用正确的密钥才能解密它。
这就是使用cryptography.fernet模块加密和解密文件的简单教程。希望它能帮助您更好地了解如何在Python中进行文件加密和解密。
