1

我在将 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 被分解为第一个块(块密码模式维基百科页面)。所以,我不认为这是问题所在。

我如何才能匹配这两个实现?

非常感谢您的帮助。

4

2 回答 2

1

您的答案在您链接到的 dren BlowFish 页面的最顶部:

如果要加密超过 8 个字节的任何内容,则需要实现自己的密码块链接。

所以不,它不是在做 CBC。您可以尝试欧洲央行版本的 BlowfishJ,但安全性要差得多

于 2012-10-12T16:22:29.243 回答
0

这是 Dojo 版本的 Blowfish。为我工作。 http://sladex.org/blowfish.js/

于 2012-10-22T11:43:59.277 回答