Übersetzung von Ruby-Verschlüsselungscode nach Java

Ich habe einen alten Code in Ruby, der die Verschlüsselung mit OpenSSL durchführt
Ich möchte dies jedoch in Java übersetzen und bin verloren. Bisher ist mein größter Blocker herauszufinden, wie ich die IV basierend auf diesem Code generieren kann. Jede Hilfe wäre sehr dankbar

    def func_enc(data, key)
        cipher = OpenSSL::Cipher::Cipher.new("aes-256-cbc")
        cipher.encrypt
        cipher.pkcs5_keyivgen(key)
        cipher.update(data)
        encrypted_data << cipher.final
        return encryptedData
    end

BEARBEITEN
Zur Verdeutlichung möchte ich dazu Java Crypto verwenden. Dies ist der Code, den ich mir bisher ausgedacht habe:

    SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithMD5And256AES-CBC");
    KeySpec spec = new PBEKeySpec("Password".toCharArray(), null, 2048, 256);
    SecretKey tmp = factory.generateSecret(spec);
    SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");
    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
    cipher.init(Cipher.ENCRYPT_MODE, secret);
    AlgorithmParameters params = cipher.getParameters();
    byte[] iv = params.getParameterSpec(IvParameterSpec.class).getIV();

aber"PBKDF2WithMD5And256AES-CBC" hat keinen Provider und ich bekomme NoSuchAlgorithm Ausnahme.

    java.security.NoSuchAlgorithmException: PBKDF2WithMD5And256AES-CBC SecretKeyFactory not available

Auch das Salz daspkcs5_keyivgen verwendet standardmäßig null !! Ich bin mir nicht sicher, ob Java die Verwendung eines Nullsalzes zulässt.

Wie kann ich die richtige IV generieren?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage