Maison >Java >javaDidacticiel >Comment décrypter les fichiers cryptés OpenSSL AES-256-CBC en Java ?
Déchiffrement d'un fichier crypté avec OpenSSL en Java à l'aide d'AES
Défi :
Les utilisateurs doivent déchiffrez un fichier crypté sous UNIX à l'aide de la commande openssl avec cryptage AES-256-CBC en Java. Le mot de passe est également requis.
Déchiffrement OpenSSL avec Java :
OpenSSL utilise sa propre méthode de dérivation de clé basée sur un mot de passe. Le texte chiffré est également implicitement codé en Base64.
Algorithme cryptique défini :
salt = random(8)
keyAndIV = BytesToKey(password, salt, 48)
key = keyAndIV[0..31]
iv = keyAndIV[32..47]
ct = AES-256-CBC-encrypt(key, iv, plaintext)
Implémentation 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 ... }
Remarques :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!