在使用SHA256生成签名的时候,报错java.security.NoSuchProviderException: no such provider: BC,这个问题之前我是遇到过的,解决方法是在jre/lib/security目录下,使用vim打开“java.security”配置上security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider
当时配置好后,问题是解决的,但是这次生成签名的时候,我是自己写的main函数进行测试的,是没问题的。当我写好接口前台调用的时候,使用SHA256生成签名的地方就报错了,还是这个no such provider: BC的错误。当时很纳闷,因为我在main函数中是没问题的。
解决方法:
在当前计算签名的类中加入静态块
static{
try{
Security.addProvider(new BouncyCastleProvider());
}catch(Exception e){
e.printStackTrace();
}
}
如: