2016-07-20 5 views
0

주어진 파일에 디지털 서명을 적용 할 코드를 작성하고 있습니다. .crt 파일이 있고 그 파일을 사용하여 KeyStore 인스턴스를 빌드해야합니다. 다음과 같이 내가 사용하고자하는 방법은 다음과 같습니다KeyStore.builder - .crt 파일의 형식 매개 변수

Builder newInstance(String **type**, Provider provider, 
       File file, ProtectionParameter protection) 

을 잘 모르겠어요하지만 무엇 '형'나가 .crt 파일을 사용하는 경우 내가 는 내가하지 않는 것이 발생할 수 있습니다, 지정해야 나는 디지털 서명을 처리 할 때이 내 처음으로 뭔가를 이해

감사합니다 :-)이 경우에 저를 판단하지 않습니다 환호

+0

서명을 확인 하시겠습니까? 또는 사인? –

+0

@MuhammadHamed 그 .crt 파일로 문서에 서명하고 싶습니다. 질문에 대해 미안합니다. 서명 또는 암호화를 다루는 것이 처음입니다. –

+0

pfx 또는 PKCS # 12 인증서 저장소를 사용하여 기호 .pfx 또는 .p12와 함께 제공됩니다. 서명 프로세스에는 개인 키가 필요합니다.이 인증서와 관련된 키 쌍이 있습니까? –

답변

1

당신은 먼저 JKS (Java 키 저장소 파일을 구축하고 사용할 수 있습니다). 개인 키 (.pem)와 인증서 (.crt)를 사용하여

체크 Importing the private-key/public-certificate pair in the Java KeyStore

은 다음 서명이 키 스토어를 사용할 수있는이 답변이 여기

KeyStore keystore = KeyStore.getInstance(TYPE_OF_KEYSTORE); 
keystore.load(new FileInputStream(PATH_TO_KEYSTORE), PASSWORD); 

을 새로 만들 자바 키 저장소 파일을로드하는 방법은 여기에 디지털 서명 및 확인하는 예입니다

      PrivateKey oPrivateKey = (PrivateKey) keystore.getKey(sAlias,null); 


          Provider p = keystore.getProvider(); 
          // data to signed 
          byte[] data ="this is the just for test".getBytes(); 
          // Signing the data 
          Signature sig = Signature.getInstance("SHA1withRSA"); 
          sig.initSign(oPrivateKey); 

          sig.update(data); 
          byte[] signature = sig.sign(); // the digital signature 

          Signature verifier = Signature.getInstance("SHA1withRSA", p); 
          verifier.initVerify(oPublicCertificate); 
          verifier.update(data); 
          System.out.println("the verification result "+verifier.verify(signature)); 

http://muhammadhamed.blogspot.com/2010/04/accessing-ms-certificate-stores-in-java.html

이것이 도움이되기를 바랍니다.

+0

대단히 감사합니다. –