Tłumaczenie kodu szyfrowania Ruby na Javę

Mam rubinowy kod starszego typu, który wykonuje szyfrowanie przy użyciu OpenSSL
Chciałbym jednak przetłumaczyć to w Javie i zgubiłem się. jak dotąd mój największy bloker zastanawia się, jak wygenerować IV na podstawie tego kodu. Każda pomoc byłaby bardzo mile widziana

    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

EDYTOWAĆ
Aby wyjaśnić, chciałbym użyć do tego Crypto Java. Oto kod, który do tej pory wymyśliłem:

    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();

ale"PBKDF2WithMD5And256AES-CBC" nie ma żadnego dostawcy i otrzymuję wyjątek NoSuchAlgorithm.

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

Także sól, którapkcs5_keyivgen domyślnie używa wartości null !! Nie jestem pewien, czy Java pozwala mi używać soli zerowej.

Jak mogę wygenerować poprawny IV?

questionAnswers(1)

yourAnswerToTheQuestion