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

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

Linda Hamilton
Linda Hamiltonasal
2024-12-14 07:46:11674semak imbas

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

Menyahsulit Fail dalam Java Disulitkan dengan AES OpenSSL dalam Mod CBC

OpenSSL menyulitkan fail menggunakan kaedah terbitan kunci kata laluan berasaskan garam dan base64 MIME pengekodan. Untuk menyahsulit fail tersebut dalam Java, patuhi langkah berikut:

  1. Jana Garam dan Kunci:

    salt = random(8)
    keyAndIV = EVP_BytesToKey(password, salt, 48)
    key = keyAndIV[0..31]
    iv = keyAndIV[32..47]
  2. Ekstrak Garam dan Teks Sifir:

    Daripada base64 yang dikodkan fail:

    • Garam: bait 8-15
    • Ciphertext: bait 16 seterusnya
  3. Nyahsulit:

    aesCBC.init(Cipher.DECRYPT_MODE, key, iv)
    plaintext = aesCBC.doFinal(ciphertext)
  4. OpenSSL EVP_BytesToKey Pelaksanaan:

    public static byte[][] EVP_BytesToKey(int key_len, int iv_len, MessageDigest md,
            byte[] salt, byte[] data, int count) {
        // ...
    }
  5. Kaedah Penyahsulitan Utama:

    public static void main(String[] args) {
        // ...
    }

Nota Tambahan :

  • Gunakan ASCII sebagai watak ditetapkan secara konsisten.
  • Nyatakan algoritma ringkasan (MD5 atau SHA-256) dalam kedua-dua OpenSSL dan Java.
  • Gunakan PBKDF2 untuk keselamatan yang dipertingkatkan.
  • Berhati-hati dengan perubahan dalam OpenSSL algoritma cerna antara versi.

Atas ialah kandungan terperinci Bagaimana untuk Menyahsulit OpenSSL AES-CBC Fail Disulitkan di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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