2016-10-08 24 views
0

Я пишу программу для подписи pdf с использованием сертификата (файл pfx). Для нескольких сертификатов я получаю ниже исключения.Как разрешить ошибку Соль должна быть длиной 8 байтов

java.security.InvalidAlgorithmParameterException: Salt must be at least 8 bytes long 

Это происходит, когда я выполняю приведенный ниже код.

Keystore ks = KeyStore.getInstance("pkcs12"); 

Я получаю исключение в файле ниже Java на номер строки 123. http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/com/sun/crypto/provider/HmacPKCS12PBESHA1.java?av=h

ответ

2

Ваш хранилище ключей имеет один или несколько сертификат (ы), который имеет длину соли, которая меньше 8. Crypto-программа требует как минимум 8 байтов.

Я бы рекомендовал создать новое хранилище ключей с единственным сертификатом, который вам нужен, и попытаться подписаться с ним.

0

Я разрешил исключение, используя pkcs12-DEF keystore. Я добавил строки кода ниже.

BouncyCastleProvider provider = new BouncyCastleProvider(); 
Security.addProvider(provider); 
KeyStore ks = KeyStore.getInstance("pkcs12-DEF"); 

Раньше я не добавил BountyCastleProvider к безопасности, из-за чего я не смог получить экземпляр PKCS12-DEF ключей. Помимо этого, я также загрузил файлы jar из http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html и заменил его файлами jar, представленными в Java \ Jdk1.7 \ jre \ lib \ security. Это файлы политики безопасности без ограничений.

 Смежные вопросы

  • Нет связанных вопросов^_^