Как расшифровать зашифрованный файл AES с параметром -nosalt

Я новичок в шифровании. Этот вопрос является подвопросом моего предыдущего. У меня есть файл, зашифрованный с помощью OpenSSL:

openssl aes-256-cbc -in fileIn -out fileOUT -p -k KEY

Я использую этот код для его расшифровки:

        byte[] encrypted = IOUtils.toByteArray(inputStream);
        Security.addProvider(new BouncyCastleProvider());

        String password = "abc";

        Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding", "BC");

        // Openssl puts SALTED__ then the 8 byte salt at the start of the
        // file. We simply copy it out.
        byte[] salt = new byte[8];
        System.arraycopy(encrypted, 8, salt, 0, 8);
        SecretKeyFactory fact = SecretKeyFactory.getInstance(
                "PBEWITHMD5AND256BITAES-CBC-OPENSSL", "BC");
        c.init(Cipher.DECRYPT_MODE, fact.generateSecret(new PBEKeySpec(
                password.toCharArray(), salt, 100)));

        // Decrypt the rest of the byte array (after stripping off the salt)
        byte[] data = c.doFinal(encrypted, 16, encrypted.length - 16);

И это работает. Но это контрольный пример. Реальная ситуация в том, что у меня есть файл, зашифрованный с этими параметрами:

openssl aes-256-cbc -nosalt -in fileIn -out fileOUT -p -k KEY

Обратите внимание, что появился параметр «-nosalt». Проблема в том, что PBEKeySpec требует не null и не пустойsalt а такжеiterationsCount Титулы. У него также есть конструктор без этих параметров, но если я его использую, то получаю ошибку:

02-11 11: 25: 06.108: W / System.err (2155): java.security.InvalidKeyException: PBE требует установки параметров PBE.

Вопрос в том, как расшифровать эти файлы? Как правильно обрабатывать параметр '-nosalt'?

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

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