Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将BlowfishJ Java实现与dren blowfish javascript实现相匹配;8字节后的加密值不同_Java_Javascript_Algorithm_Encryption_Blowfish - Fatal编程技术网

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

将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

我在将blowsfishjjava实现()与drenblowfishjavascript实现()关联时遇到了一些问题

在Java方面,我使用的是Blowfish CBC,带有一个zero IV,键是somekey。明文是WillThisEQ

在JavaScript方面,我认为dren的实现也使用CBC和zero IV。密钥是somekey,明文也是WillThisEQ

下面是JavaScript代码:

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。