核心用法
pywayne-crypto 是一个Python加密解密工具集,主要提供三类功能:
1. 基础加解密:支持字符串和字节数据的加密/解密,默认使用Fernet(AES-128-CBC)算法,密码错误时自动回退到XOR加密
2. 批量处理:encrypt_batch/decrypt_batch 支持列表数据的批量加解密
3. 配置文件管理:save_config/load_config 实现JSON配置文件的加密存储
使用示例
from pywayne.crypto import encrypt, decrypt, encrypt_batch, save_config
# 基础用法(默认密钥)
encrypted = encrypt("敏感数据")
decrypted = decrypt(encrypted)
# 自定义密码
cipher = encrypt("机密信息", "my_secure_password")
plain = decrypt(cipher, "my_secure_password")
# 批量加密
data = ["数据1", "数据2", "数据3"]
encrypted_list = encrypt_batch(data, "batch_password")显著优点
- 开箱即用:无需复杂配置,单函数调用即可完成加解密
- 算法透明:明确标注使用Fernet(AES-128),非黑箱实现
- 批量支持:原生支持列表数据的批量处理,提升效率
- 配置管理:内置加密配置文件存取,适合小型应用
- 依赖轻量:基于cryptography库,生态成熟
潜在缺点与局限性
| 问题 | 说明 |
|------|------|
| **XOR回退风险** | 密码错误时自动降级到XOR加密,无密钥派生,极易被破解 |
| **密钥管理薄弱** | 密码直接用于派生密钥,未说明使用PBKDF2等标准KDF |
| **无认证机制** | XOR模式无消息完整性验证,存在篡改风险 |
| **硬编码风险** | 文档示例大量使用硬编码密码,引导性不佳 |
| **安全等级自评** | 文档承认"高安全性要求应用需使用专业加密库" |
适合人群
- 原型开发/学习场景:快速理解对称加密基本概念
- 低敏感度数据保护:如配置文件加密、临时数据混淆
- 内部工具/脚本:非生产环境的自动化脚本
不适合:金融数据、个人隐私信息、合规要求(GDPR、等保)场景
常规风险
1. 降级攻击风险:XOR回退机制可能被恶意利用,强制触发弱加密
2. 密钥泄露风险:密码直接参与密钥派生,弱密码导致整体失守
3. 数据不可恢复:密码丢失后无恢复机制(特性,但需用户认知)
4. 代码混淆误导:"代码混淆保护"实为Base64编码,非真正混淆
建议替代方案
- 生产环境:直接使用
cryptography.fernet.Fernet或age - 配置文件:考虑
python-dotenv+ 系统密钥管理 - 密码存储:使用
keyring或系统密钥链