这个项目可以让用户加密文件,以保护文件内容的安全性,也可以让用户解密已加密的文件。这个项目涉及到文件操作、加密算法等方面的技术。
代码示例:
from cryptography.fernet import Fernet # 导入 Fernet 加密算法
import os # 导入 os 模块def generate_key():
# 生成加密密钥
return Fernet.generate_key()def save_key(key, key_file='key.key'):
# 将密钥保存到文件
with open(key_file, 'wb') as f:
f.write(key)def load_key(key_file='key.key'):
# 从文件加载密钥
with open(key_file, 'rb') as f:
return f.read()def encrypt_file(file_path, key):
# 使用密钥加密文件
fernet = Fernet(key)
with open(file_path, 'rb') as f:
file_data = f.read()
encrypted_data = fernet.encrypt(file_data)
with open(file_path + '.encrypted', 'wb') as f:
f.write(encrypted_data)
os.remove(file_path)def decrypt_file(file_path, key):
# 使用密钥解密文件
fernet = Fernet(key)
with open(file_path, 'rb') as f:
encrypted_data = f.read()
decrypted_data = fernet.decrypt(encrypted_data)
with open(file_path[:-10], 'wb') as f:
f.write(decrypted_data)
os.remove(file_path)if __name__ == '__main__':
choice = input('请选择操作:\n1. 加密文件\n2. 解密文件\n请选择操作(1或2): ')
key = generate_key()
save_key(key)
file_path = input('请输入文件路径: ')
if choice == '1':
encrypt_file(file_path, key)
print('文件加密成功!')
elif choice == '2':
decrypt_file(file_path, key)
print('文件解密成功!')
else:
print('无效的选择,请重新运行程序。')
代码逻辑分析:
使用 cryptography 库中的 Fernet 加密算法来加密和解密文件。首先,生成一个加密密钥并保存到文件中,然后用户选择加密或解密操作,并输入要处理的文件路径。根据用户的选择,对文件进行加密或解密操作。