Python中使用Fernet加密和解密文件
要在Python中使用Fernet加密和解密文件,您需要遵循以下步骤:
1、安装cryptography库:
pip install cryptography
2、导入必要的库:
from cryptography.fernet import Fernet import os
3、生成密钥:
key = Fernet.generate_key()
这将生成一个随机密钥,用于加密和解密文件。您可以将此密钥保存在文件中,以便将来使用。
4、加密文件:
def encrypt_file(file_path, key): f = Fernet(key) with open(file_path, "rb") as file: file_data = file.read() encrypted_data = f.encrypt(file_data) with open(file_path, "wb") as file: file.write(encrypted_data)
这将读取指定路径的文件并将其加密,然后将加密的数据写回原始文件。
例如,如果您要加密名为“test.txt”的文件,您可以调用以下函数:
encrypt_file("test.txt", key)
5、解密文件:
def decrypt_file(file_path, key): f = Fernet(key) with open(file_path, "rb") as file: encrypted_data = file.read() decrypted_data = f.decrypt(encrypted_data) with open(file_path, "wb") as file: file.write(decrypted_data)
这将读取指定路径的文件并将其解密,然后将解密的数据写回原始文件。
例如,如果您要解密名为“test.txt”的文件,您可以调用以下函数:
decrypt_file("test.txt", key)
注意,要成功解密文件,您需要提供正确的密钥。否则,解密操作将失败。
以下是完整的示例代码:
from cryptography.fernet import Fernet import os # 生成密钥 key = Fernet.generate_key() # 加密文件 def encrypt_file(file_path, key): f = Fernet(key) with open(file_path, "rb") as file: file_data = file.read() encrypted_data = f.encrypt(file_data) with open(file_path, "wb") as file: file.write(encrypted_data) # 解密文件 def decrypt_file(file_path, key): f = Fernet(key) with open(file_path, "rb") as file: encrypted_data = file.read() decrypted_data = f.decrypt(encrypted_data) with open(file_path, "wb") as file: file.write(decrypted_data) # 测试加密和解密 text = "pidancode.com 皮蛋编程" with open("test.txt", "w") as file: file.write(text) # 加密文件 encrypt_file("test.txt", key) # 解密文件 decrypt_file("test.txt", key) # 打印解密后的文件内容 with open("test.txt", "r") as file: decrypted_text = file.read() print(decrypted_text)
运行该代码将输出:
pidancode.com 皮蛋编程
相关文章