Twofish 加密与解密
使用曾入围 AES 决赛的 Twofish 加密和解密文本。
解密时还需要这个密码。输入的任何内容都不会离开本页。
OpenSSL 的默认值是 10,000。任何次数都可以:次数越多,密码越难猜;解密时必须使用相同的次数。
使用 OpenSSL 时的常用选择。需要 IV;填充为完整的分组。
OpenSSL 没有 Twofish 密码。
Twofish 出自 Bruce Schneier 的团队,是 AES 竞赛的五个决赛算法之一,也是 Blowfish 的继任者:它以 16 字节为一组加密,密钥为 128、192 或 256 位,目前没有已知的实际攻击。一些加密软件把它作为 AES 之外的另一选择,本页可以用它加密和解密文本:默认 Twofish-256(也可选 128 或 192),支持 CBC、ECB、CTR、CFB 或 OFB 模式。可以使用密码——密钥和 IV 由 PBKDF2-HMAC-SHA256 加随机盐派生,采用 openssl enc -pbkdf2 的 Salted__ 格式——也可以使用你自己的 hex 密钥和 IV。一切都在浏览器中运行,你的文本和密钥不会离开设备;免费,无需注册。
如何用 Twofish 加密文本
- 选择“加密”或“解密”。输入要加密的文本,或粘贴要解密的 Base64 或 hex 文本,格式会自动识别。
- 输入密码(点“生成”可得到一个强密码),或切换到“密钥和 IV(hex)”,输入或生成密钥和 32 个 hex 字符的 IV(ECB 没有 IV)。
- 选择密钥长度(默认 256 位)和模式(默认 CBC)。解密时,必须使用与加密时相同的设置。
- 复制或下载结果,也可以点“交换”把结果移到输入框并切换方向。
功能
- Twofish 支持 128、192 或 256 位密钥,默认 256 位
- CBC、ECB、CTR、CFB、OFB 模式;PKCS#7 填充或不填充
- 密码模式使用 PBKDF2-HMAC-SHA256,带 openssl enc -pbkdf2 的 Salted__ 头
- PBKDF2 迭代次数 1 到 1000 万次,默认 10,000 次
- 密钥和 IV 模式,便于与其他 Twofish 软件交换数据:hex 密钥和 32 个 hex 字符的 IV,可手动输入或自动生成
- 输入输出均支持 Base64 或 hex;可复制、下载结果或点“交换”
隐私安全吗?
是的。Twofish 在浏览器内的 WebAssembly 中运行,因此你的文本、密码和密钥不会上传或保存——连浏览器存储里也不会保存。
常见问题
Twofish 比 AES 更安全吗?
没有证据表明其中哪一个更弱:完整的 Twofish 和 AES 都不存在实际可行的攻击,而且都使用 16 字节分组和最长 256 位的密钥。AES 赢得了竞赛,因此有硬件支持,几乎随处可用;当与你交换数据的程序或合作方使用 Twofish 时,再选择它。
OpenSSL 能解密 Twofish 吗?
不能——OpenSSL 不包含 Twofish,所以没有 openssl 命令能读取这里的输出。请使用密钥和 IV 模式,把相同的密钥、IV 和模式交给支持 Twofish 的库,例如 Bouncy Castle、Botan 或 libgcrypt;CBC 和 ECB 模式要使用 PKCS#7 填充。
Twofish 需要什么样的密钥和 IV?
16、24 或 32 字节的密钥——Twofish-128、192、256 分别对应 32、48、64 个 hex 字符——以及 16 字节、即 32 个 hex 字符的 IV,ECB 模式除外,它没有 IV。粘贴密钥后,密钥长度会随之调整。在密码模式下,两者都由密码和盐派生,盐就放在输出中 Salted__ 之后。
选 Twofish 还是 Blowfish?
选 Twofish。它是同一位设计者推出的 Blowfish 继任者:16 字节的分组避开了 Blowfish 8 字节分组的 Sweet32 弱点,密钥也可长达 256 位。只在读取用 Blowfish 生成的数据时才使用 Blowfish。