암호로 보호 된 PFX 파일에서 개인 키를 가져 오려고 시도하고 추출 된 개인 키를 사용하여 암호 해독을 수행합니다. 다음 코드를 입력했는데 NullPointerException
. 지난 1 주부터이 붙어 출력이PFX 파일에서 개인 키 읽기, 해당 개인 키로 암호문 암호 해독
Security.addProvider(new BouncyCastleProvider());
PEMParser pemParser = new PEMParser(new InputStreamReader(new FileInputStream("..//pfx//pfx//BC_6.pfx")));
PEMEncryptedKeyPair encryptedKeyPair = (PEMEncryptedKeyPair) pemParser.readObject();
PEMDecryptorProvider decryptorProvider = new JcePEMDecryptorProviderBuilder().build("test123".toCharArray());
PEMKeyPair pemKeyPair = encryptedKeyPair.decryptKeyPair(decryptorProvider);
JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC");
System.out.println(" Private Key ---> "+converter.getPrivateKey(pemKeyPair.getPrivateKeyInfo()));
,
Exception in thread "main" java.lang.NullPointerException
at com.test.obfuscate.EncryptionUtil.main(EncryptionUtil.java:40)
이에 제안하십시오. StackOverflow에서 다른 게시물을 보았습니다.
어느 라인이 당신이 얻을 NPE에 대한 책임이있다 (작은 오타/구문 오류를 신경 쓰지 마십시오 내 머리에서 입력)? –
"PEMKeyPair에서 NPE 가져 오기 pemKeyPair = encryptedKeyPair.decryptKeyPair (decryptorProvider);" line – mahi
PFX라고하는 PKCS12 파일은 ** PEM 형식이 아닙니다 ** (보시다시피) ** 일부 PEM 형식을 처리하는 BC 루틴에서는 읽을 수 없습니다. 그러나 표준 Java (JCE)와 BC _can_는 PKCS12를 _keystore_로 처리합니다. 'KeyStore.getInstance ("PKCS12"[, provider])를 호출 해, 생성 된 오브젝트를 사용해 PFX 파일을로드 한 다음, 오브젝트로부터 키를 취득합니다. 모두, 「KeyStore」의 javadoc로 설명되고 있습니다. –