1

BlowsfishJ Java 実装 ( BlowfishJ Javadoc ) を dren Blowfish JavaScript 実装 ( dren Blowfish ページ) に関連付ける際に問題が発生しています。

Java 側では、IV がゼロでキーがsomekeyの Blowfish CBC を使用しています。平文はWillThisEQです。

JavaScript 側では、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 は最初のブロック (ブロック暗号モード Wikipedia ページ) に組み込まれます。だから、それは問題ではないと思います。

これら 2 つの実装を一致させるにはどうすればよいですか?

助けてくれてありがとう。

4

2 に答える 2

1

あなたの答えは、リンク先の dren BlowFish ページの一番上にあります。

8 バイトを超えるものを暗号化する場合は、独自の暗号ブロック チェーンを実装する必要があります。

いいえ、それはCBCを行っていません。BlowfishJ の ECB バージョンを試すこともできますが、セキュリティははるかに劣ります。

于 2012-10-12T16:22:29.243 に答える
0

これが Dojo バージョンの Blowfish です。私のために働きます。 http://sladex.org/blowfish.js/

于 2012-10-22T11:43:59.277 に答える