现象

        使用对称加密时,使用了"AES/CBC/PKCS7Padding"类型时,出现"Cannot find any provider supporting AES/CBC/PKCS7Padding"不支持的错误。

原因

        默认情况下javax.crypto.Cipher只支持PKCS5Padding类型,PKCS7Padding需要加载第三方Bouncy Castle扩展包。

处理方案

  1. 引入bcpkix-jdk15on包,或使用spring-cloud-starter框架时中也存在。
  2. 系统初始化是在安全组件中加入插件
    @PostConstruct
    private void init(){
        if (Security.getProvider("BC") == null) {
            Security.addProvider(new BouncyCastleProvider());
        } else {
            Security.removeProvider("BC");
            Security.addProvider(new BouncyCastleProvider());
        }
    }

Logo

一站式 AI 云服务平台

更多推荐