使用Python实现一个简单的文件加密程序
发布时间:2023-12-04 13:24:30
以下是使用Python实现一个简单的文件加密程序的示例:
import os
from cryptography.fernet import Fernet
def generate_key():
"""
生成一个随机的加密密钥并保存到文件中
"""
key = Fernet.generate_key()
with open("encryption_key.key", "wb") as key_file:
key_file.write(key)
def load_key():
"""
从文件中加载加密密钥
"""
return open("encryption_key.key", "rb").read()
def encrypt_file(file_path, key):
"""
使用给定的密钥加密文件
"""
fernet = Fernet(key)
with open(file_path, "rb") as file:
file_data = file.read()
encrypted_data = fernet.encrypt(file_data)
with open(file_path, "wb") as encrypted_file:
encrypted_file.write(encrypted_data)
def decrypt_file(file_path, key):
"""
使用给定的密钥解密文件
"""
fernet = Fernet(key)
with open(file_path, "rb") as encrypted_file:
encrypted_data = encrypted_file.read()
decrypted_data = fernet.decrypt(encrypted_data)
with open(file_path, "wb") as decrypted_file:
decrypted_file.write(decrypted_data)
# 生成密钥
generate_key()
# 加载密钥
key = load_key()
# 加密文件
file_to_encrypt = "example.txt"
encrypt_file(file_to_encrypt, key)
# 解密文件
file_to_decrypt = "example.txt"
decrypt_file(file_to_decrypt, key)
上述代码使用了cryptography库中的Fernet类来实现文件加密和解密的功能。首先,使用generate_key函数生成一个随机的加密密钥,并将其保存到名为encryption_key.key的文件中。然后,使用load_key函数加载密钥。接下来,使用encrypt_file函数将指定的文件加密。最后,使用decrypt_file函数将加密后的文件解密。
你可以将需要加密的文件保存为example.txt,然后运行上述代码,它将加密该文件,并将加密后的文件保存在同一目录下。然后,程序将使用相同的密钥对加密后的文件进行解密,并将解密结果保存在同一目录下。
请注意,由于使用的是对称加密算法,所以加密和解密所使用的密钥必须相同。确保在解密文件时使用与加密相同的密钥。另外请注意保护好密钥文件,以防止未经授权的人访问密钥。
