一、Blowfish加密算法在线工具文档
1.1、Blowfish加密算法介绍
Blowfish(河豚算法)是一个对称密钥加密区块算法,由布鲁斯·施奈尔于1993年设计,现已应用在多种加密产品。Blowfish算法由于分组长度太小已被认为不安全,施奈尔更建议在现代应用中使用Twofish加密算法。
二、Blowfish加密算法在线工具使用须知
2.1、Blowfish的填充模式
块密码只能对确定长度的数据块进行处理,而消息的长度通常是可变的,因此不同的工作模式对应的填充模式不同,当您选择NONE不填充时,则要保证加密文本长度为8的倍数,否则出现Blowfish解密/加密异常。
- 填充区别:在ECB、CBC工作模式下最后一块要在加密前进行填充,其它不用选择填充模式;
- 填充模式:Blowfish支持的填充模式为PKCS5、PKCS7和NONE。其中PKCS7标准是主流加密算法都遵循的数据填充算法。Blowfish标准规定的区块长度为固定值64Bit,推荐PKCS7。
2.2、Blowfish密钥KEY和初始化向量IV
初始化向量IV可以有效提升安全性,但是在实际的使用场景中,它不能像密钥KEY那样直接保存在配置文件或固定写死在代码中,一般正确的处理方式为:在加密端将IV设置为一个8位的随机值,然后和加密文本一起返给解密端即可。
- 区块长度:Blowfish标准规定区块长度只有一个值,固定为64Bit,对应的字节为8位;
- 密钥KEY:密钥长度区间为32-448,对应4-56位,该字段不能公开传输,用于加密和解密;
- 初始化向量IV:该字段可以公开,用于将加密随机化。同样的明文被多次加密也会产生不同的密文,避免了较慢的重新产生密钥的过程,初始化向量与密钥相比有不同的安全性需求,因此IV通常无须保密。然而在大多数情况中,不应当在使用同一密钥的情况下两次使用同一个IV,一般初始化向量IV为8位的随机值。
三、Blowfish加密算法在线工具使用方式
加解密参数需要完全一致才能成功,为防止乱码和保证正确的传输结果,加解密文本一律使用Base64编码的字符串。
- 场景一:使用Blowfish密钥加密文本,您可以手动或使用默认值进行Blowfish加密;
- 场景二:使用Blowfish密钥解密文本,主要用于在线解密Blowfish字符串。