簡體   English   中英

從PFX文件中讀取私鑰,並使用該私鑰解密密文

[英]Read private key from PFX file, decrypt the ciphertext with that private key

我試圖從受密碼保護的PFX文件中獲取私鑰,並在提取的私鑰的幫助下進行解密。嘗試以下代碼,但得到了NullPointerException

    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的不同帖子。

PEMParser pemParser = new PEMParser(new InputStreamReader(new FileInputStream("..//pfx//pfx//BC_6.pfx")));

您是否正在嘗試將PFX文件讀取為PEM文件? PFX文件實際上是PKCS12密鑰庫。

因此(從我的腦海中鍵入,請不要介意小錯別字/語法錯誤)

InputStream in = ...
KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(in);
(PEMEncryptedKeyPair) pemParser.readObject()

返回null ,因此

encryptedKeyPairnull ,您不能調用其方法。 確保執行以下一項或多項操作:

  • 確保您正確讀取了該值,所以它不為null
  • 僅當對象的方法不同於null時才調用該方法
  • try - catch以處理異常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM