AES를 사용하여 Java에서 OpenSSL로 암호화된 파일 암호 해독
도전 과제:
사용자는 다음을 수행해야 합니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!