0
キーまたはIVは変更できません。この場合のみ、暗号化はJavaおよびLinuxで機能します。JavaとLinuxでの暗号化が一致しない
Linuxの:
echo -n 1234567890ABCDEF| openssl enc -bf-cbc -K 0 -iv 0 -nopad -nosalt |base64
のJava
byte[] key = {0};
byte[] iv = {0, 0, 0, 0, 0, 0, 0, 0};
Cipher c = Cipher.getInstance("BlowFish/CBC/NoPadding");
Key k = new SecretKeySpec(key, "BlowFish");
c.init(Cipher.ENCRYPT_MODE, k, new IvParameterSpec(iv));
byte[] encrypt = c.doFinal("1234567890ABCDEF".getBytes("UTF-8"));
System.out.println(new String(Base64.encodeBase64(encrypt)));
キーとIVを変更する方法
ので、両方が等号を続けますか?
Java側ではどういう例外がありますか?鍵がどれくらい長くなければならないかを教えてくれるほど正確でなければならないと思います。 –
BlowFishは新作では使用しないでください。作者でもAESを使用しています。ランダムIVを使用して、暗号化されたデータの前にプレフィックスを付加して、復号化の際に使用してください。パディングを使用しない場合は、暗号化するimputの長さをブロックサイズの倍数にする必要があります。PKCS#5パディングを使用する必要があります。あなたはセキュリティのために暗号化を行っていますよね? – zaph
私は、あなたが['EVP_BytesToKey'](https://www.openssl.org/docs/manmaster/crypto/EVP_BytesToKey.html)に乗っていると信じています。また、[Java openssl暗号化/復号鍵の生成](http://stackoverflow.com/q/34502705)、[OpenSSL AES CBC暗号化のJava同等物](http://stackoverflow.com/q/32508961)およびフレンド。探しているものが分かれば、ウェブ全体で見つけることができます。 – jww