美文网首页安全收集
AES解密问题已解决

AES解密问题已解决

作者: TDominator | 来源:发表于2019-09-27 16:37 被阅读0次

    整理项目的时候分享之前整合微信退款AES解密的问题;

    加密算法如下:

    
        /**
    
         * 密钥算法
    
         */
    
        private static final String ALGORITHM = "AES";
    
        /**
    
         * 加解密算法/工作模式/填充方式
    
         */
    
        private static final String ALGORITHM_MODE_PADDING = "AES/ECB/PKCS5Padding";
    
        public static String decryptData(String base64Data,String appKey) throws Exception {
    
            byte[] bytes = MD5Util.MD5Encode(appKey, "UTF-8").toLowerCase().getBytes();
    
            SecretKeySpec key = new SecretKeySpec(bytes ,ALGORITHM);
    
            Cipher cipher = Cipher.getInstance(ALGORITHM_MODE_PADDING);
    
            cipher.init(Cipher.DECRYPT_MODE, key);
    
            return new String(cipher.doFinal(BASE64.decode(base64Data)));
    
        }
    
        public static String MD5Encode(String origin, String charsetname) {
    
            String resultString = null;
    
            try {
    
                resultString = new String(origin);
    
                MessageDigest md = MessageDigest.getInstance("MD5");
    
                if (charsetname == null || "".equals(charsetname))
    
                    resultString = byteArrayToHexString(md.digest(resultString
    
                            .getBytes()));
    
                else
    
                    resultString = byteArrayToHexString(md.digest(resultString
    
                            .getBytes(charsetname)));
    
            } catch (Exception exception) {
    
            }
    
            return resultString;
    
        }
    
    问题是,拿到加密字符信息本地测试,是完全没问题,部署到Linux服务器上老是报错!!! 报错信息

    当初以为是代码的原因,百思不得其解;查阅各种资料后终于得到了答案;
    那是因为:
    因为某些国家的进口管制限制,Java发布的运行环境包中的加解密有一定的限制。比如默认不允许256位密钥的AES加解密,解决方法就是修改策略文件

    下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

    根据服务器当前jdk版本下载

    将local_policy.jar和US_export_policy.jar这两个文件替换%JRE_HOME%\lib\security和%JDK_HOME%\jre\lib\security下原来的文件,注意先备份原文件

    相关文章

      网友评论

        本文标题:AES解密问题已解决

        本文链接:https://www.haomeiwen.com/subject/bjahyctx.html