错误日志:无法找到RSA算法,找不到类,类加载器有限制。
2016-09-28 14:52:39.654 [ERROR] com.csii.mcs.ibs.validator.CSIIPinConvertor nP1vkKiwN9YmjVBVLbWe7rROTgM2v8b9eevCpIXPZwK7YXpp2jTq!-685201044!1475045533872 ebankmapp2#1475045559550#24 login decrptPWD
failed
java.security.NoSuchAlgorithmException: No such algorithm: RSA/ECB/PKCS1Padding
at javax.crypto.Cipher.getInstance(DashoA13*..) [na:1.6]
at com.csii.pdm.jceproxy.JCEProxy.getCipherInstance(JCEProxy.java:85) [com.csii.pdm.jceproxy_20121011.jar:na]
at com.csii.pe.security.EnDecryptFactory$EnDecryptImpl.deCryptRaw(EnDecryptFactory.java:405) [null:na]
at com.csii.pe.security.EnDecryptFactory$EnDecryptImpl.deCrypt(EnDecryptFactory.java:386) [null:na]
at com.csii.mcs.ibs.validator.CSIIPinConvertor.decryptPWD(CSIIPinConvertor.java:199) [null:na]
at com.csii.mcs.ibs.validator.CSIIPinConvertor.convert(CSIIPinConvertor.java:137) [n
java rsa nopadding_java.security.NoSuchAlgorithmException: No such algorithm: RSA/ECB/PKCS1Padding 问...
错误日志:无法找到RSA算法,找不到类,类加载器有限制。2016-09-28 14:52:39.654 [ERROR] com.csii.mcs.ibs.validator.CSIIPinConvertor nP1vkKiwN9YmjVBVLbWe7rROTgM2v8b9eevCpIXPZwK7YXpp2jTq!-685201044!1475045533872 ebankmapp2#1475045...
public void setupBouncyCastle() {
final Provider provider =
Security
.getProvider(BouncyCastleProvider.PROVIDER_NAME);
if (provider == null) {
// Web3j will set up the provider lazily wh
SM4 加密 No such
algorithm
: SM4/
ECB
/PKCS7
Padding
解决jar冲突后
问
题还没有解决
sm4加解密 本地没
问
题,线上出现
问
题
百度很多帖子 都说是jar冲突,删除bcprov-jdk14-140.jar
或者 bcprov-jdk15-140.ja 等jar之后
问
题可以解决
但实际
问
题还存在
goole之后,找到解决方案,在此基础上还需要
修改JDK 配置 $
JAVA
_HOME/jre/lib/
security
/
java
.
security
No such
algorithm
: SM4/
ECB
/PKCS5
Padding
运行错误
外部jar包需要依赖bcpkix-jdk15on-1.x.jar包 再本地测试没有
问
题的 一发布到线上就运行错误
在网上试了很多办法 花了两天终于解决了
以下几个方法可能对你们有帮助
检查依赖冲突,是否同时有 bcpkix-jdk14 和 bcpkix-jdk15on 剔除bcpkix-jdk14 即可
修改tomcat 设置 将 bcpkix-jdk15on-*.jar 加入到 tomcat.util.scan
记录一下
java
.
security
.NoSuch
Algorithm
Exception
: No such
algorithm
: SM4/
ECB
/PKCS5
Padding
import org.apache.commons.codec.binary.Hex;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.pqc.math.linearalgebra.ByteUtils;
import
java
x.crypto.Cipher;
import
java
x.crypto.KeyGenerator;
import
java
x.crypto.spec.Secr...
bcprov-jdk15on-1.xx.jar下载路径:https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on
记得如果这个版本不行你就多选几个试试,肯定有个好使
下载时点击图中表明处
下面就成功了,非常nice
SM2,SM3,SM4算法的实现在网络上实现有不少,但是实现只是加解密,签名等,如果说要生成国密数字证书就麻烦了,还有最近银行的项目上需要用ITEXT对pdf进行国密跟
RSA
证书数字签名,这个用SM2单独的签名是不能实现的,因为ITEXT签名是基于BC框架的,这里就是在BC框架上添加SM2,SM4算法,以及SM3摘要算法,在这里跟大家分享一下。
BC框架是基于JCA,JCE来实现的,关于JCA,J
1.判断 bc类是否已经存在
(
Security
.getProvider(BouncyCastleProvider.PROVIDER_NAME) == null)
若存在打印打印其版本号-
double version =
Security
.getProvider(BouncyCastleProvider.PROVIDER_NAME).getVersion();
查看version版本号是否是你引入的jar包版本
若不是执行2,3步
若不存在执行第三步引入bc类
2.删除:
Security
.removePr
这个错误通常是由于找不到指定路径下的文件导致的。在 Linux 或 macOS 中,`id_
rsa
.pub` 是默认的公钥文件名,它通常存储在 `~/.ssh/` 目录下。如果该目录下不存在此文件,则会出现 "No such file or directory" 错误。
你可以使用 `ls -a ~/.ssh/` 命令来检查 `.ssh` 目录下是否存在 `id_
rsa
.pub` 文件。如果不存在,则需要生成新的 SSH 密钥对。你可以使用 `ssh-keygen` 命令生成新的密钥对,然后将公钥复制到服务器上。例如:
ssh-keygen -t
rsa
然后将生成的公钥复制到服务器上,可以使用 `ssh-copy-id` 命令。例如:
ssh-copy-id user@hostname
这将把 `id_
rsa
.pub` 文件中的公钥复制到远程服务器的 `authorized_keys` 文件中,从而允许你通过 SSH 连接到远程服务器。