ホームページ >Java >&#&チュートリアル >Java で OpenSSL AES-256-CBC 暗号化ファイルを復号化する方法
Java の OpenSSL で暗号化されたファイルを AES を使用して復号化する
課題:
ユーザーは次のことを行う必要があります。 openssl コマンドを使用して UNIX で暗号化されたファイルを復号化します。 Java での AES-256-CBC 暗号化。パスワードも必要です。
Java を使用した OpenSSL 復号化:
OpenSSL は、独自のパスワードベースの鍵導出方式を採用しています。暗号文も暗黙的に Base64 としてエンコードされます。
暗号アルゴリズムの定義:
salt = random(8)
keyAndIV = BytesToKey(password, Salt, 48)
キー = keyAndIV[0..31]
iv = keyAndIV[32..47]
ct = AES-256-CBC-encrypt(key, iv, plaintext)
Java実装:
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 で OpenSSL AES-256-CBC 暗号化ファイルを復号化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。