java.lang.ClassNotFoundException : org. bouncycaSTLe.jcajce.provider.asymmetric.rsa.CipherSpi$NoPadding 错误

标签 java rsa bouncycastle

尝试使用 .cer 加密。它在本地系统中工作,但当我转向生产时出现错误。 我在 Live 服务器上有 bcprov-jdk15on-158.jar 文件。

源代码

public static byte[] encryptUsingPublicKey(byte[] data, PublicKey publicKey) throws IOException, GeneralSecurityException {
    Cipher pkCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC");//Here iam Getting Error
    pkCipher.init(Cipher.ENCRYPT_MODE, publicKey);
    byte[] encSessionKey = pkCipher.doFinal(data);
    return encSessionKey;
}

错误堆栈跟踪

        INFO: Illegal access: this web application instance has been stopped already.  Could not load org.bouncycastle.jca.provider.asymmetric.rsa.CipherSpi$NoPadding.  The eventual following stack trace is caused by an error thrown forbugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functio impact.
java.lang.IllegalStateException
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1777)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
        at java.security.Provider$Service.getImplClass(Provider.java:1636)
        at java.security.Provider$Service.newInstance(Provider.java:1592)
        at javax.crypto.Cipher.getInstance(Cipher.java:668)
        at javax.crypto.Cipher.getInstance(Cipher.java:595)
        at in.gov.cgg.struts.utilities.common.TAEncrypter.encryptUsingPublicKey(TAEncrypter.java:134)
        at in.gov.cgg.struts.utilities.common.TAEncrypter.EncryptRequest(TAEncrypter.java:57)

       ...

java.security.NoSuchAlgorithmException: No such algorithm: RSA/ECB/PKCS1Padding
        at javax.crypto.Cipher.getInstance(Cipher.java:687)
        at javax.crypto.Cipher.getInstance(Cipher.java:595)
        at in.gov.cgg.struts.utilities.common.TAEncrypter.encryptUsingPublicKey(TAEncrypter.java:134)
        at in.gov.cgg.struts.utilities.common.TAEncrypter.EncryptRequest(TAEncrypter.java:57)
        at in.gov.cgg.struts.actions.RequestHandlerAction.unspecified(RequestHandlerAction.java:78)
        at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:256)
        at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
       ....
Caused by: java.security.NoSuchAlgorithmException: class configured for Cipher (provider: BC) cannot be found.
        at java.security.Provider$Service.getImplClass(Provider.java:1649)
        at java.security.Provider$Service.newInstance(Provider.java:1592)
        at javax.crypto.Cipher.getInstance(Cipher.java:668)
        ... 32 more
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$NoPadding
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
        at java.security.Provider$Service.getImplClass(Provider.java:1636)
        ... 34 more

最佳答案

java.lang.ClassNotFoundException 当类在您的 classpath 中不可用时生成。检查您的 classpath 是否包含预期的 jar。即使它在服务器上,但可能不包含在 classpth 中。

java.lang.ClassNotFoundException 没有其他原因

关于java.lang.ClassNotFoundException : org. bouncycaSTLe.jcajce.provider.asymmetric.rsa.CipherSpi$NoPadding 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51440977/

相关文章:

java - WildFly 访问不存在的 JSF 页面时不显示 404 错误页面

.net-core - 如何将公钥导入RSA以在.net core中加密

c++ - C++中对数组的误解

c# - BouncyCaSTLe,生成RSA key 对需要多长时间?

java - 使用 BouncyCaSTLe 在 Java 6 上运行 TLS 1.2

java - BouncyCasTLe 和 AES-GCM

java - Android 开发 将 XML 按钮链接到 Java

java - 如何在 Android 上暂停/延迟?

cryptography - Windows CryptoAPI : CryptSignHash with CALG_SHA_256 and private key from MY keystore

java - 二叉搜索树 字符串搜索