когда я расшифровываю файл с помощью инструмента командной строки openssl
, все в порядке с помощью следующей рекомендации.Я не имею никакой информации о шифровании, клиент предоставляет только следующую команду и ключ.
openssl enc -d -aes-256-cbc -in 8MP_2018_12_12.gz.enc -out 8MP_2018_12_12.gz.enc.gz -pass file:pass.txt
Я уже проверял много вопросов в stackoverflow, тестировал и запускал для большого количества программ.Поскольку я только предоставил ключ, я не могу использовать ivparameterspec
.
В файле pass.txt есть предоставленный ключ
xxxxxxx12354125222sdsf <- example
Моя программа
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import org.apache.commons.ssl.OpenSSL;
public class OpenSSLTest {
public static void main(String[] args) throws Exception {
File inputFile = new File("D:\\temp\\8MP_2018_12_12.gz.enc");
File outputFile = new File("D:\\temp\\8MP_2018_12_12.gz");
FileInputStream inputStream = new FileInputStream(inputFile);
InputStream in = OpenSSL.decrypt("aes-256-cbc", "xxxxxxx12354125222sdsf".toCharArray(), inputStream);
FileOutputStream outputStream = new FileOutputStream(outputFile);
IOUtils.copy(in, outputStream);
outputStream.flush();
outputStream.close();
in.close();
}
}
Когда я запускаю вышеуказанную программу, я получаю следующее сообщение
Exception in thread "main" java.security.InvalidKeyException: Illegal key size
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1039)
at javax.crypto.Cipher.implInit(Cipher.java:805)
at javax.crypto.Cipher.chooseProvider(Cipher.java:864)
at javax.crypto.Cipher.init(Cipher.java:1396)
at javax.crypto.Cipher.init(Cipher.java:1327)
at org.apache.commons.ssl.PKCS8Key.generateCipher(PKCS8Key.java:420)
at org.apache.commons.ssl.OpenSSL.decrypt(OpenSSL.java:165)
at OpenSSLTest.main(OpenSSLTest.java:15)
Я уже пытаюсь исправить эту проблему в соответствии с Безопасность Java: недопустимый размер ключа или параметры по умолчанию?
Я уже скачал jce_policy-8.zip
.Я уже положил local_policy.jar
и US_export_policy.jar
в мой каталог ....\jre1.8.0_66\lib\security
.
Я все еще получаю сообщение об ошибке выше.Моя версия JDK - jdk1.8.0_66.