使用AES 在Java 解密OpenSSL 加密的檔案
挑戰:
挑戰:使用者需要使用openssl 指令解密在UNIX 中加密的檔案Java 中的AES-256-CBC 加密。密碼也是必需的。
使用 Java 進行 OpenSSL 解密:
OpenSSL 採用自己的基於密碼的金鑰派生方法。密文也隱式編碼為 Base64。
加密演算法定義:
keyAndIV = BytesToKey(password, salt, 48) 鍵= keyAndIV[0. .31]iv = keyAndIV[32..47]
ct = AES-256-CBC-encrypt(key, iv, plaintext)import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; import java.security.GeneralSecurityException; import java.security.MessageDigest; import java.util.Arrays; import java.util.List; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.bouncycastle.util.encoders.Base64; public class OpenSSLDecryptor { // ... Code as in the given answer ... }
Java實作:
以上是如何在Java中解密OpenSSL AES-256-CBC加密檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!