在 CBC 模式下解密使用 OpenSSL 的 AES 加密的 Java 文件
OpenSSL 使用基于盐的密码密钥派生方法和 base64 MIME 来加密文件编码。要在 Java 中解密此类文件,请遵循以下步骤:
生成盐和密钥:
salt = random(8) keyAndIV = EVP_BytesToKey(password, salt, 48) key = keyAndIV[0..31] iv = keyAndIV[32..47]
提取盐和密文:
来自base64编码文件:
解密:
aesCBC.init(Cipher.DECRYPT_MODE, key, iv) plaintext = aesCBC.doFinal(ciphertext)
OpenSSL EVP_BytesToKey实现:
public static byte[][] EVP_BytesToKey(int key_len, int iv_len, MessageDigest md, byte[] salt, byte[] data, int count) { // ... }
主要解密方法:
public static void main(String[] args) { // ... }
附加注意:
以上是如何用Java解密OpenSSL AES-CBC加密文件?的详细内容。更多信息请关注PHP中文网其他相关文章!