将BlowfishJ Java实现与dren blowfish javascript实现相匹配;8字节后的加密值不同
我在将blowsfishjjava实现()与drenblowfishjavascript实现()关联时遇到了一些问题 在Java方面,我使用的是Blowfish CBC,带有一个zero IV,键是somekey。明文是WillThisEQ 在JavaScript方面,我认为dren的实现也使用CBC和zero IV。密钥是somekey,明文也是WillThisEQ 下面是JavaScript代码:将BlowfishJ Java实现与dren blowfish javascript实现相匹配;8字节后的加密值不同,java,javascript,algorithm,encryption,blowfish,Java,Javascript,Algorithm,Encryption,Blowfish,我在将blowsfishjjava实现()与drenblowfishjavascript实现()关联时遇到了一些问题 在Java方面,我使用的是Blowfish CBC,带有一个zero IV,键是somekey。明文是WillThisEQ 在JavaScript方面,我认为dren的实现也使用CBC和zero IV。密钥是somekey,明文也是WillThisEQ 下面是JavaScript代码: var bf = new Blowfish('some key'); var cipherte
var bf = new Blowfish('some key');
var ciphertext = bf.encrypt('WillThisEQ');
var plaintext = bf.decrypt(ciphertext);
对于密文,两种实现的前8个字节都匹配(WillThis)。但是,任何后续字节都不匹配(EQ000000)。IV被分解为第一个块()。所以,我认为这不是问题所在
如何使这两个实现匹配
非常感谢您的帮助。您的答案位于以下最上方: 如果要加密长度超过8字节的内容,则需要实现自己的密码块链接
所以不,这不是CBC。您可以尝试,但是。您的答案位于以下列表的最顶端: 如果要加密长度超过8字节的内容,则需要实现自己的密码块链接
所以不,这不是CBC。你可以试试,但是。这是Dojo版本的河豚。对我有用。
这是Dojo版的河豚。对我有用。
非常感谢+1.阅读理解。因此,我必须为JS编写自己的CBC。这就是为什么鼓励他的执行不用于任何严重的事情。欧洲央行版本的BlowfishJ会与他的实现一起工作吗?@user717236该页面不清楚他们是否会一起工作,但值得一试。看起来CBC并没有那么复杂,你只需要为每个区块设置一个特殊的IV值。是的,我必须写我自己的CBC。我已经证实,欧洲央行的版本并不相同。JS实现只加密第一个8字节块,不使用ECB。非常感谢+1.阅读理解。因此,我必须为JS编写自己的CBC。这就是为什么鼓励他的执行不用于任何严重的事情。欧洲央行版本的BlowfishJ会与他的实现一起工作吗?@user717236该页面不清楚他们是否会一起工作,但值得一试。看起来CBC并没有那么复杂,你只需要为每个区块设置一个特殊的IV值。是的,我必须写我自己的CBC。我已经证实,欧洲央行的版本并不相同。JS实现只加密第一个8字节的块,不使用ECB。