2016-10-08 1 views
0

인증서 (pfx 파일)를 사용하여 pdf에 서명하는 프로그램을 작성하고 있습니다. 몇 가지 인증서의 경우 예외가 발생합니다.오류 해결 방법 소금 길이가 8 바이트 여야합니다

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

아래 코드를 실행하면 이러한 현상이 발생합니다.

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

나는 줄 번호에 아래의 자바 파일에 예외를 얻고 123 http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/com/sun/crypto/provider/HmacPKCS12PBESHA1.java?av=h

답변

2

키 스토어 미만 8 인 소금 길이가 하나 이상의 인증서를 가지고 암호화 프로그램은 최소한 8 바이트가 필요합니다.

필요한 인증서가 하나만있는 새로운 키 저장소를 만들어 서명을 시도하는 것이 좋습니다.

0

pkcs12-DEF 키 스토어를 사용하여 예외가 해결되었습니다. 아래 코드 줄을 추가했습니다.

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

이전 나는, 보안에 BountyCastleProvider를 추가하지 않았다 때문에 어느 나는 PKCS12-DEF 키 스토어의 인스턴스를 얻을 수 없습니다. 이 외에도 http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html 위치의 jar 파일을 다운로드하고 Java \ Jdk1.7 \ jre \ lib \ security에있는 jar 파일로 바 꾸었습니다. 이것들은 JCE 7 Unlimited 강도 정책 파일입니다.

관련 문제