簡體   English   中英

Java - 來自 PEM 文件的 RSA 公鑰 - java.lang.NoClassDefFoundError: org/bouncycastle/asn1/x509/SubjectPublicKeyInfo

[英]Java - RSA Public Key from PEM File - java.lang.NoClassDefFoundError: org/bouncycastle/asn1/x509/SubjectPublicKeyInfo

我有 PEM 文件,它是一個 RSA PRIVATE KEY,我正在使用下面的代碼讀取私鑰和公共:

            StringReader reader = new StringReader(//pem);

            PEMReader pemReader = new PEMReader(reader);
            final KeyPair keyPair = (KeyPair) pemReader.readObject();
            pKey = keyPair.getPublic();
            RSAPublicKey rsaPublicKey = (RSAPublicKey) pKey;
            rsaPublicKey.getEncoded();
            Base64.getEncoder().encodeToString(rsaPublicKey.getEncoded()))
  

此代碼在作為獨立運行時運行良好 Java

但是,當作為 Web 應用程序運行時,我收到以下錯誤::

SEVERE: Servlet.service() for servlet MYSERVER threw exception
java.lang.NoClassDefFoundError: org/bouncycastle/asn1/x509/SubjectPublicKeyInfo
        at org.bouncycastle.jce.provider.JCERSAPublicKey.getEncoded(Unknown Source)

圖書館:: bcprov-jdk16-143

有什么線索嗎??

該錯誤是因為您錯過了代碼中的一些Bouncy Castle jar 依賴項。

問題是 Bouncy Castle 需要在 Java 中注冊為有效的加密提供者。 您可以使用以下代碼執行此操作:

Security.addProvider(new BouncyCastleProvider());

或在全球范圍內 Java 像這樣

暫無
暫無

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

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