如何使用openssl解密使用AES加密的Java数据

时间:2014-11-12 19:32:22

标签: java cryptography openssl aes public-key-encryption

我在Java中生成AES公钥和IV(初始化向量)来加密数据。我需要使用openssl命令解密它。鉴于我将AES密钥和IV存储在磁盘上,这是否可能?

以下是加密逻辑

    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
    cipher.init(Cipher.ENCRYPT_MODE, key, iv);
    byte[] stringBytes = pass.getBytes();
    byte[] raw = cipher.doFinal(stringBytes);
    return Base64.encodeBase64String(raw);

生成AES密钥

   SecretKey secret_key = KeyGenerator.getInstance("AES").generateKey();

生成IV

   SecureRandom random = new SecureRandom();
   IvParameterSpec iv = new IvParameterSpec(random.generateSeed(16));

我将IV和AES密钥保存在未加密的磁盘中的文件中。我现在如何使用openssl

使用这两个参数解密数据

1 个答案:

答案 0 :(得分:0)

将它们保存为十六进制并使用例如

-K `cat key.hex` -iv `cat iv.hex`

所以使用反引号而不是单引号。