Cómo descifrar el archivo cifrado AES con el parámetro '-nosalt'

Soy nuevo en el cifrado. Esta pregunta es una pregunta de mi anterior. Tengo un archivo encriptado con OpenSSL util:

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

Estoy usando este código para descifrarlo:

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

Y funciona. Pero este es un caso de prueba. La situación real es que tengo un archivo cifrado con estos parámetros:

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

Observe que apareció el parámetro '-nosalt'. El problema es que PBEKeySpec no requiere nulo y no está vacíosalt yiterationsCount params También tiene un constructor sin estos parámetros, pero si lo uso, aparece un error:

02-11 11: 25: 06.108: W / System.err (2155): java.security.InvalidKeyException: PBE requiere que se configuren los parámetros de PBE.

La pregunta es cómo descifrar estos archivos. ¿Cómo manejar el parámetro '-nosalt' correctamente?

Respuestas a la pregunta(1)

Su respuesta a la pregunta