Перевод кода шифрования Ruby на Java

У меня есть устаревший код в ruby, который выполняет шифрование с использованием OpenSSL
Тем не менее, я хотел бы перевести это на Java, и я заблудился. до сих пор мой самый большой блокировщик выясняет, как генерировать IV на основе этого кода. Любая помощь будет принята с благодарностью

    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

РЕДАКТИРОВАТЬ
Просто чтобы уточнить, я хотел бы использовать Java Crypto для этого. Это код, который я придумал до сих пор:

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

но"PBKDF2WithMD5And256AES-CBC" У меня нет провайдера, и я получаю исключение NoSuchAlgorithm.

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

Также соль, котораяpkcs5_keyivgen использует по умолчанию ноль! Я не уверен, позволяет ли Java использовать нулевую соль.

Как я могу создать правильный IV?

Ответы на вопрос(1)

Ваш ответ на вопрос