在使用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();
                     }
            }

如:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐