Illegal key size or default parameters

最近在做微信退款解密的时候,Liunx服务器出现这个错误Illegal key size or default parameters 原因是Java几乎各种常用加密算法都能找到对应的实现。因为美国的出口限制,Sun通过权限文件(local_policy.jar、US_export_policy.jar)做了相应限制。因此存在一些问题:●密钥长度上不能满足需求(如:java.security.InvalidKeyException: Illegal key size or default parameters),然后网上说要通过替换JDK/jre/lib/security的local_policy.jarUS_export_policy.jar,然后我去官网下但是出现404,后面找了很多资源,才找到这两个文件的下载地址,在替换之间,最好备份原先的jdk的就有的文件,确保不丢失。

文件下载地址: https://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip

可是因为我们是Liunx 容器部署,而且要替换这个两个文件比较麻烦,后面根据官网查阅资料并解决。

链接地址:https://www.oracle.com/technetwork/java/javase/8u151-relnotes-3850493.html

在jdk.1.8u151 版本可以通过 Security.setProperty("crypto.policy", "unlimited"); 取消sun的权限限制

 注意:jdk使用jdk.1.8u151

 以下是解密的代码


import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.security.Security;
import java.util.Base64;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

@Component
public class AESUtils {
 /**
     * 密钥算法
     */
    private static final String ALGORITHM = "AES";
    /**
     * 加解密算法/工作模式/填充方式
     */
    private static final String ALGORITHM_MODE_PADDING = "AES/ECB/PKCS7Padding";


   static {
        Security.addProvider(new BouncyCastleProvider());
        Security.setProperty("crypto.policy", "unlimited");
    }


  /**
     * 退款报文加密
     *
     * @param paySecret   秘钥
     * @param responseStr 微信返回的支付串
     * @return  其中的WXPayUti 是通过微信官网的下载的工具类 https://pay.weixin.qq.com/wiki/doc/api/download/WxPayAPI_JAVA.zip
     * @throws Exception
     */
    private String decryptionMessage(String paySecret, String responseStr) throws Exception {
        final Base64.Decoder decoder = Base64.getDecoder();
        SecretKeySpec key = new SecretKeySpec(WXPayUtil.MD5(paySecret).toLowerCase().getBytes(), ALGORITHM);
        Cipher cipher = Cipher.getInstance(ALGORITHM_MODE_PADDING, "BC");
        cipher.init(Cipher.DECRYPT_MODE, key);
        String decoderXml = new String(cipher.doFinal(decoder.decode(responseStr)), "UTF-8");
        return decoderXml;
    }
}

 

posted @ 2020-05-26 14:12  u清  阅读(3812)  评论(0编辑  收藏  举报