Maison > Java > javaDidacticiel > Comment décrypter les fichiers cryptés OpenSSL AES-256-CBC en Java ?

Comment décrypter les fichiers cryptés OpenSSL AES-256-CBC en Java ?

Susan Sarandon
Libérer: 2024-12-19 16:30:10
original
194 Les gens l'ont consulté

How to Decrypt OpenSSL AES-256-CBC Encrypted Files in 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 ...
}
Copier après la connexion

Remarques :

  • Le jeu de caractères ASCII est spécifié, mais le jeu de caractères réel peut varier.
  • L'algorithme PBKDF2 approuvé par le NIST doit être utilisé pour améliorer la sécurité.
  • OpenSSL 1.1.0c a modifié son algorithme de résumé. Spécifiez-le explicitement à la fois dans la commande et dans le code Java.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal