我在将 BlowsfishJ Java 实现 ( BlowfishJ Javadoc ) 与 dren Blowfish JavaScript 实现 ( dren Blowfish page ) 相关联时遇到了一些问题。
在 Java 方面,我使用的是 Blowfish CBC,IV 为零,密钥是somekey。明文是WillThisEQ。
在 JavaScript 方面,我假设 dren 的实现也是使用 CBC 和零 IV。密钥是somekey,明文也是WillThisEQ。
这是 JavaScript 代码:
var bf = new Blowfish('some key');
var ciphertext = bf.encrypt('WillThisEQ');
var plaintext = bf.decrypt(ciphertext);
对于密文,前 8 个字节匹配两种实现(WillThis)。但是,任何后续字节都不匹配(EQ000000)。IV 被分解为第一个块(块密码模式维基百科页面)。所以,我不认为这是问题所在。
我如何才能匹配这两个实现?
非常感谢您的帮助。