Java和Linux中的加密与

时间:2016-10-21 21:16:15

标签: java linux encryption openssl

我不能更改密钥或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,以便两者继续等于?

1 个答案:

答案 0 :(得分:1)

阅读documentation

  

所有分组密码通常使用 PKCS#5填充,也称为标准块填充

由于您的Java代码显示为NoPadding,因此您需要添加额外的参数:

-nopad
     disable standard block padding