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
220 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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan