Blowfish在线加密/解密
在线Blowfish加密解密工具,支持可变密钥长度(32-448位)和CBC/ECB/CFB/OFB模式。
安全提示
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位 | 良好 | 快 |
| AES | 128/192/256位 | 128位 | 优秀 | 快 |
| DES | 56位 | 64位 | 较弱 | 快 |
| 3DES | 112/168位 | 64位 | 中等 | 慢 |
安全建议
- 1. Blowfish的64位分组大小在使用同一密钥加密大量数据(>32GB)时容易受到生日攻击。
- 2. 对于需要最高安全性的新项目,建议使用AES或Blowfish的后继者Twofish。
- 3. 始终使用CBC或其他链接模式而非ECB,以获得更好的安全性。
- 4. 使用同一密钥时,每次加密操作都应使用唯一的IV。
使用场景
- 密码哈希: bcrypt基于Blowfish,广泛用于密码存储
- 文件加密: 适合加密单个文件和压缩包
- VPN和安全通信: 用于OpenVPN和其他安全协议
- 传统系统兼容: 与使用Blowfish的系统保持兼容
常见问题 (FAQ)
Blowfish 安全吗?
Blowfish对于大多数应用仍然是安全的,但由于其64位分组大小,在加密大量数据时可能受到生日攻击。对于新项目,建议使用AES。
Blowfish 和 AES 有什么区别?
Blowfish使用64位分组和可变密钥长度(32-448位),而AES使用128位分组和固定密钥长度(128/192/256位)。AES是当前的行业标准。
为什么需要 IV?
IV(初始化向量)用于随机化加密。即使相同的明文和密钥,使用不同的 IV 也会产生不同的密文,防止模式分析。
数据会被上传到服务器吗?
不会。所有操作均在本地 JavaScript 中执行,数据不离线,绝对隐私安全。