Blowfish 加密与解密
使用 Blowfish 加密和解密文本,密钥长度可自选。
按现在的标准,Blowfish 已不够安全——可用来读取旧数据;新数据请使用 AES 或 ChaCha20。 前往 AES
解密时还需要这个密码。输入的任何内容都不会离开本页。
OpenSSL 的默认值是 10,000。任何次数都可以:次数越多,密码越难猜;解密时必须使用相同的次数。
使用 OpenSSL 时的常用选择。需要 IV;填充为完整的分组。
openssl enc -bf-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider defaultOpenSSL 会提示输入密码;把文本粘贴进去,或加上 -in 和 -out 文件。
Blowfish 是 Bruce Schneier 于 1993 年设计的分组密码,分组为 8 字节,密钥长度可在 32 到 448 位之间任选。它曾是替代 DES 的热门免费方案,至今仍出现在一些旧应用、文件格式和配置文件中。本页用 Blowfish 加密和解密文本,默认 CBC 模式,也可选 ECB、CFB、OFB 或 CTR,密钥长度以 8 位为步长任意设置——默认 128 位,即 OpenSSL bf-cbc 所用的密钥长度——可以使用 openssl enc -pbkdf2 格式的密码,或你自己的 hex 密钥和 IV。新数据请使用 AES 或 ChaCha20。一切都在浏览器中运行,你的文本和密钥不会离开设备;免费,无需注册。
如何用 Blowfish 加密或解密文本
- 选择“加密”或“解密”。输入要加密的文本,或粘贴要解密的 Base64 或 hex 文本,格式会自动识别。
- 输入密码,或切换到“密钥和 IV(hex)”,输入密钥和 16 个 hex 字符的 IV(ECB 没有 IV)。粘贴密钥后,密钥长度会自动随之设定。
- 选择密钥长度(除非数据用了其他长度,否则为 128 位)和模式,通常是 CBC 或 ECB。只有当数据加密时没有使用 PKCS#7 填充,才打开“无填充”。
- 复制或下载结果,也可以点“交换”把结果移到输入框并切换方向。
功能
- 密钥长度 32 到 448 位,以 8 位为步长任选,64、128、256、448 位一键可选
- CBC、ECB、CFB、OFB、CTR 模式;PKCS#7 填充或不填充
- openssl enc -pbkdf2 格式的密码模式;默认的 128 位正是 OpenSSL bf-cbc 使用的长度
- 密钥和 IV 模式:8 到 112 个 hex 字符的密钥和 16 个 hex 字符的 IV
- 使用 128 位密钥时,除 CTR 外的每种模式都给出 openssl 命令,使用 OpenSSL 3 的 legacy provider
- 输入输出均支持 Base64 或 hex;可复制、下载结果或点“交换”
隐私安全吗?
是的。Blowfish 在浏览器内的 WebAssembly 中运行。你的文本、密码和密钥不会上传或保存,只在页面打开期间保留。
常见问题
Blowfish 现在还安全吗?
对新数据来说不安全。目前没有能攻破 Blowfish 本身的实际攻击,但它的 8 字节分组使同一密钥下的大量数据容易受到攻击(Sweet32 攻击),它的设计者本人也建议改用更新的密码。用它读取已有数据即可;新数据请使用 AES 或 ChaCha20。
能用 OpenSSL 解密吗?
可以,前提是使用默认的 128 位密钥:echo 'U2FsdGVkX1…' | openssl enc -d -bf-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider default。其他模式用 -bf-ecb、-bf-cfb 和 -bf-ofb;密钥和 IV 模式下用 -K <32 个 hex 字符> -iv <16 个 hex 字符> 代替 -pbkdf2 -iter。OpenSSL 没有 Blowfish 的 CTR 模式,而且 openssl enc 总是使用 128 位的 Blowfish 密钥,所以其他密钥长度无法用它读取。
应该选择多长的密钥?
选数据加密时所用的长度;不确定的话选 128 位,因为 OpenSSL 用的就是它。在密码模式下,页面会从密码派生出所选长度的密钥,所以长度不同,密钥也不同。在密钥和 IV 模式下,以 hex 密钥本身的长度为准:粘贴密钥后,密钥长度会随之调整。
这和 bcrypt 是一回事吗?
不是。bcrypt 是基于 Blowfish 密钥编排的密码哈希函数,哈希无法解密。本页是 Blowfish 加密,可以用密码或密钥还原。要对密码做哈希或校验密码,请使用 bcrypt 工具。