我在将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)中。所以,我认为这不是问题所在。
我怎样才能匹配这两个实现?
非常感谢您的帮助。
答案 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/