服务器和本地代码一致,本地运行没有问题,远程操作提示,jdk版本为1.8.0.161。错误信息
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA
at javax.crypto.Cipher.getInstance(Cipher.java:540)
at com.shineyue.sdk.encrypt.RSACoder.decryptByPublicKey(RSACoder.java:52
)
at com.shineyue.sdk.core.DataPlatFormService.uploadTwo(DataPlatFormServi
ce.java:317)
at com.shineyue.sdk.core.DataPlatFormApi.upload(DataPlatFormApi.java:96)
at com.jason.invokerWs.provider.task.TokenManager.uploadData(TokenManage
r.java:273)
at com.jason.invokerWs.provider.task.TokenManager.run(TokenManager.java:
162)
at com.jason.invokerWs.provider.task.InvokerAPI.execute(InvokerAPI.java:
50)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.j
ava:573)
最佳答案
这个问题在Eclipse直接启动时不会出现,但是部署到服务器上就会出现。 原因:解密步骤发生错误,未找到RSA/ECB/PKCS1Padding等解密相关算法的provider。 解决办法:将${JAVA_HOME}\lib\ext目录下的sunjce_provider.jar添加到classpath目录下。
关于java - 运行程序的提示找不到任何支持 RSA 的提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61918600/