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
Freigeben: 2024-12-14 07:46:11
Original
589 Leute haben es durchsucht

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]
    Nach dem Login kopieren
  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)
    Nach dem Login kopieren
  4. OpenSSL EVP_BytesToKey Implementierung:

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

    public static void main(String[] args) {
        // ...
    }
    Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage