Menyahsulit Fail Disulitkan dengan OpenSSL dalam Java Menggunakan AES
Cabaran:
Pengguna perlu menyahsulit fail yang disulitkan dalam UNIX menggunakan arahan openssl dengan AES-256-CBC penyulitan dalam Java. Kata laluan juga diperlukan.
Penyahsulitan OpenSSL dengan Java:
OpenSSL menggunakan kaedah terbitan kunci berasaskan kata laluannya sendiri. Teks sifir juga dikodkan secara tersirat sebagai Base64.
Algoritma Samar Ditakrifkan:
garam = rawak(8)
keyAndIV = BytesToKey(kata laluan, garam, 48)
kunci = keyAndIV[0..31]
iv = keyAndIV[32..47]
ct = AES-256-CBC-encrypt(kunci, iv, plaintext)
Java Pelaksanaan:
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 ... }
Nota:
Atas ialah kandungan terperinci Bagaimana untuk Menyahsulit OpenSSL AES-256-CBC Fail Disulitkan di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!