我不能更改密钥或IV,只有在这种情况下加密才能在Java和Linux中运行。
Linux :
echo -n 1234567890ABCDEF| openssl enc -bf-cbc -K 0 -iv 0 -nopad -nosalt |base64
爪哇
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)));
如何更改Key和IV,以便两者继续等于?
答案 0 :(得分:1)
所有分组密码通常使用 PKCS#5填充,也称为标准块填充
由于您的Java代码显示为NoPadding
,因此您需要添加额外的参数:
-nopad disable standard block padding