Heim >Java >javaLernprogramm >Wie entschlüssele ich mit OpenSSL AES-256-CBC verschlüsselte Dateien in Java?
Mit OpenSSL in Java verschlüsselte Datei mit AES entschlüsseln
Herausforderung:
Benutzer müssen Entschlüsseln Sie eine in UNIX verschlüsselte Datei mit dem Befehl openssl mit AES-256-CBC-Verschlüsselung in Java. Das Passwort ist ebenfalls erforderlich.
OpenSSL-Entschlüsselung mit Java:
OpenSSL verwendet eine eigene passwortbasierte Schlüsselableitungsmethode. Der Chiffretext ist auch implizit als Base64 kodiert.
Kryptischer Algorithmus definiert:
salt = random(8)
keyAndIV = BytesToKey(password, salt, 48)
Taste = keyAndIV[0..31]
iv = keyAndIV[32..47]
ct = AES-256-CBC-encrypt(key, iv, plaintext)
Java Implementierung:
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 ... }
Hinweise:
Das obige ist der detaillierte Inhalt vonWie entschlüssele ich mit OpenSSL AES-256-CBC verschlüsselte Dateien in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!