Rumah > Java > javaTutorial > Bagaimana untuk Menyahsulit OpenSSL AES-256-CBC Fail Disulitkan di Java?

Bagaimana untuk Menyahsulit OpenSSL AES-256-CBC Fail Disulitkan di Java?

Susan Sarandon
Lepaskan: 2024-12-19 16:30:10
asal
313 orang telah melayarinya

How to Decrypt OpenSSL AES-256-CBC Encrypted Files in Java?

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 ...
}
Salin selepas log masuk

Nota:

  • ASCII charset ditentukan, tetapi set aksara sebenar mungkin berbeza-beza.
  • Algoritma PBKDF2 yang diluluskan oleh NIST harus digunakan untuk keselamatan yang dipertingkatkan.
  • OpenSSL 1.1.0c menukar algoritma penghadamannya. Nyatakan secara eksplisit dalam arahan dan dalam kod Java.

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan