在线工具箱
Blowfish 加密

Blowfish 加密解密工具

Blowfish 对称加密,支持多种工作模式与输出格式。

隐私安全:所有处理均在您的浏览器本地完成,数据绝不上传
Blowfish加密安全
ℹ️

Blowfish 使用提示

Blowfish 为 1993 年发布的经典公开算法(无专利),分组长度 64 位。 为避免生日攻击(Sweet32),单个密钥加密的数据量建议不超过约 32GB; 新项目建议改用AES 加密。

模式与填充

工作模式

密钥与 IV

明文 / 密文

工作原理

  1. 1选择工作模式(CBC / ECB)与填充方式(PKCS7 / NoPadding),并选择密文输出格式(Base64 / Hex)。
  2. 2输入密钥(1~56 字节)与 IV(CBC 模式需 8 字节),可切换 UTF-8 / Hex / Base64 格式或一键生成随机值。
  3. 3在明文框中输入内容后点击「加密」,工具在本地完成 π 常量密钥扩展、16 轮 Feistel 变换与 PKCS7 填充,得到密文。
  4. 4将密文粘贴到密文框并保持相同参数,点击「解密」还原明文;文件模式下可拖入文件加解密并下载结果。

常见问题

Blowfish 还安全吗?

Blowfish 算法本身从未被有效破解,但它的分组长度只有 64 位,在「单密钥加密海量数据」场景下会受生日攻击影响(HTTPS 中类似问题被称为 Sweet32)。因此建议单个密钥加密的数据量不超过约 32GB,新项目优先选择 AES(128 位分组)。本工具适合兼容老旧系统、教学演示与轻量场景。

为什么密钥长度可以不是 8 的整数倍?

Blowfish 的密钥调度会把密钥按字节循环异或到 P-array 中,因此 1~56 字节的任意长度都是合法的。PRD 规定的有效范围即 1~56 字节(8~448 位),工具会在输入时实时校验并给出提示。

ECB 模式有什么风险?

ECB 对每个 8 字节分组独立加密,相同明文块会产生相同密文块,从而泄露数据的结构特征。除兼容旧系统外,建议使用 CBC 模式并为每次加密使用随机 IV。

NoPadding 为什么有时会报错?

NoPadding 不做任何补齐,因此要求明文长度必须是 8 字节的整数倍。若长度不符,工具会阻止加密并提示,请改用 PKCS7 填充或自行补齐数据。

为什么解密时提示「密钥错误或数据已损坏」?

Blowfish 本身不提供完整性校验,工具只能通过 PKCS7 填充校验来间接判断。当密钥、IV、模式或填充任一参数与加密时不一致时,去填充校验失败即给出该统一提示。

数据会上传到服务器吗?

不会。Blowfish 算法由纯 TypeScript 在浏览器本地实现,加解密全程不发起任何网络请求,断网也能正常使用。

更多在线工具