Blowfish加解密工具
Bruce Schneier设计的快速对称分组密码
⚠️ 安全提示
Blowfish的64位分组大小在加密大量数据时可能受到生日攻击。对于需要最高安全性的新项目,建议使用AES-256。
Blowfish密钥长度: 4-56字节 (32-448位)。推荐: 16字节 (128位) 或更长
格式选项
关于Blowfish加密
Blowfish是由Bruce Schneier于1993年设计的对称密钥分组密码。它是首批不受专利限制的安全分组密码之一,可供任何人免费使用。
Blowfish使用64位分组大小,支持32位到448位的可变密钥长度。它采用16轮Feistel网络结构,使其既快速又安全,适用于大多数应用场景。
主要特点
- 可变密钥长度: 32到448位(4到56字节),安全级别灵活可调
- 64位分组大小: 以8字节为单位处理数据
- 16轮Feistel网络: 提供强大的扩散和混淆
- 快速加密: 针对32位处理器优化,比DES快得多
加密模式说明
- CBC: 每个明文块先与前一个密文块XOR,再加密。需要IV,最安全。
- ECB: 每个块独立加密。不需要IV,但相同明文产生相同密文。
- CFB: 将块密码转换为流密码。需要IV。
- OFB: 输出反馈模式,将块密码转换为流密码。需要IV。
算法对比
| 算法 | 密钥长度 | 分组大小 | 安全性 | 速度 |
|---|---|---|---|---|
| Blowfish | 32-448位 | 64 bits | 良好 | 快 |
| AES | 128/192/256 bits | 128 bits | 优秀 | 快 |
| DES | 56 bits | 64 bits | 较弱 | 快 |
| 3DES | 112/168 bits | 64 bits | 中等 | 慢 |
安全建议
- Blowfish的64位分组大小在使用同一密钥加密大量数据(>32GB)时容易受到生日攻击。
- 对于需要最高安全性的新项目,建议使用AES或Blowfish的后继者Twofish。
- 始终使用CBC或其他链接模式而非ECB,以获得更好的安全性。
- 使用同一密钥时,每次加密操作都应使用唯一的IV。
使用场景
- 密码哈希: bcrypt基于Blowfish,广泛用于密码存储
- 文件加密: 适合加密单个文件和压缩包
- VPN和安全通信: 用于OpenVPN和其他安全协议
- 传统系统兼容: 与使用Blowfish的系统保持兼容