Heim >Java >javaLernprogramm >Wie entschlüssele ich mit OpenSSL AES-CBC verschlüsselte Dateien in Java?

Wie entschlüssele ich mit OpenSSL AES-CBC verschlüsselte Dateien in Java?

Linda Hamilton
Linda HamiltonOriginal
2024-12-14 07:46:11592Durchsuche

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

Entschlüsseln von Dateien in Java, die mit OpenSSLs AES im CBC-Modus verschlüsselt wurden

OpenSSL verschlüsselt Dateien mithilfe einer Salt-basierten Methode zur Passwortschlüsselableitung und Base64-MIME Codierung. Um solche Dateien in Java zu entschlüsseln, befolgen Sie die folgenden Schritte:

  1. Salt und Schlüssel generieren:

    salt = random(8)
    keyAndIV = EVP_BytesToKey(password, salt, 48)
    key = keyAndIV[0..31]
    iv = keyAndIV[32..47]
  2. Salz und Chiffretext extrahieren:

    Aus der Base64-Verschlüsselung Datei:

    • Salt: Bytes 8-15
    • Geheimtext: Bytes 16 ab
  3. Entschlüsseln:

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

    public static byte[][] EVP_BytesToKey(int key_len, int iv_len, MessageDigest md,
            byte[] salt, byte[] data, int count) {
        // ...
    }
  5. Hauptentschlüsselungsmethode:

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

Zusätzliche Hinweise :

  • Verwenden Sie ASCII als Zeichensatz konsistent.
  • Geben Sie den Digest-Algorithmus (MD5 oder SHA-256) sowohl in OpenSSL als auch in Java an.
  • Verwenden Sie PBKDF2 für mehr Sicherheit.
  • Achten Sie auf Änderungen im Digest von OpenSSL Algorithmus zwischen Versionen.

Das obige ist der detaillierte Inhalt vonWie entschlüssele ich mit OpenSSL AES-CBC verschlüsselte Dateien in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn