背景介绍
随着数据安全需求的不断提升,文件加密已成为常见需求之一。本脚本采用Python的hashlib库实现文件内容的哈希加密,通过参数化输入和本地运行特性,实现简单、可扩展的加密操作。脚本支持多种加密算法类型,确保用户可根据实际需求进行灵活选择。
思路分析
本脚本的核心思想是:
1. 参数化处理:输入文件路径和加密算法类型,通过命令行参数传递,确保脚本可被用户直接运行。
2. 文件加密算法:采用hashlib库进行加密,支持SHA-256算法(例如使用hashlib.sha256()函数计算文件哈希值)。
3. 文件存储逻辑:将加密后的文件内容存储到新文件中,通过open()函数实现读写操作,并确保路径创建和权限验证。
代码实现
import os
import hashlib
def encrypt_file(path, algorithm):
# 1. 确保路径存在并创建目录
os.makedirs(os.path.dirname(path), exist_ok=True)
# 2. 读取输入文件内容
with open(path, 'rb') as f:
content = f.read()
# 3. 计算哈希值并存储
hash_obj = hashlib.sha256(content.encode('utf-8'))
output_path = os.path.splitext(path)[0] + f'-{algorithm}.txt'
# 4. 写入加密后文件
with open(output_path, 'wb') as f:
f.write(hash_obj.digest())
print(f"加密完成!加密后的文件路径为: {output_path}")
# 示例输入
encrypt_file("/data/encrypted.txt", "AES-256")
总结
本脚本通过Python的文件处理功能实现文件内容的加密存储,支持多种算法类型,确保了操作的灵活性和安全性。代码中通过参数传递、路径验证和哈希加密算法,实现了本地运行的功能,具有良好的可扩展性和可读性。