匹配BlowfishJ Java实现到dren blowfish javascript实现; 8字节后的加密值不同

时间:2012-10-12 15:00:17

标签: java javascript algorithm encryption blowfish

我在将BlowsfishJ Java实现(BlowfishJ Javadoc)与dren Blowfish JavaScript实现(dren Blowfish page)相关联方面存在一些问题。

在Java方面,我使用的是Blowfish CBC,零IV,密钥是 somekey 。明文是 WillThisEQ

在JavaScript方面,我PRESUME 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被考虑到第一个块(Block Cipher Modes Wikipedia page)中。所以,我认为这不是问题所在。

我怎样才能匹配这两个实现?

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您的答案位于dren BlowFish page you linked to

的最顶端
  

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

所以不,它不是在做CBC。您可以尝试ECB version of BlowfishJ,但the security is much worse

答案 1 :(得分:0)

这是Blowfish的Dojo版本。适合我。 http://sladex.org/blowfish.js/