Blowfish 加密解密工具
Blowfish 对称加密,支持多种工作模式与输出格式。
隐私安全:所有处理均在您的浏览器本地完成,数据绝不上传Blowfish加密安全
ℹ️
Blowfish 使用提示
Blowfish 为 1993 年发布的经典公开算法(无专利),分组长度 64 位。 为避免生日攻击(Sweet32),单个密钥加密的数据量建议不超过约 32GB; 新项目建议改用AES 加密。
模式与填充
工作模式
密钥与 IV
明文 / 密文
工作原理
- 1选择工作模式(CBC / ECB)与填充方式(PKCS7 / NoPadding),并选择密文输出格式(Base64 / Hex)。
- 2输入密钥(1~56 字节)与 IV(CBC 模式需 8 字节),可切换 UTF-8 / Hex / Base64 格式或一键生成随机值。
- 3在明文框中输入内容后点击「加密」,工具在本地完成 π 常量密钥扩展、16 轮 Feistel 变换与 PKCS7 填充,得到密文。
- 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 在浏览器本地实现,加解密全程不发起任何网络请求,断网也能正常使用。