gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:53 24 4
gpt4 key购买 nike

我在将 BlowsfishJ Java 实现 ( BlowfishJ Javadoc ) 与 dren Blowfish JavaScript 实现 ( dren Blowfish page ) 相关联时遇到了一些问题。

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

在 JavaScript 方面,我假设 dren 的实现也使用 CBC 和零 IV。 key 是somekey,明文也是WillThisEQ

这是 JavaScript 代码:

var bf = new Blowfish('some key');
var ciphertext = bf.encrypt('WillThisEQ');
var plaintext = bf.decrypt(ciphertext);

对于密文,前 8 个字节匹配两个实现 (WillThis)。但是,任何后续字节都不匹配 (EQ000000)。 IV 被分解为第一个 block ( Block Cipher Modes Wikipedia page )。所以,我不认为这是问题所在。

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

非常感谢您的帮助。

最佳答案

您的答案位于 dren BlowFish page you linked to 的最顶部:

You need to impliment your own cipher-block chaining if you want to encrypt anything longer than 8 bytes.

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

关于java - 将 BlowfishJ Java 实现与 dren blowfish javascript 实现相匹配; 8字节后的加密值不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12861830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com