鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 网站安全 > 加密解密 > >

DES加密后get获取url参数无法解密问题 - java

来源:互联网 作者:佚名 时间:2015-09-03 09:32
参考:http://www.cnblogs.com/lori/archive/2011/09/08/2170979.html 问题 ,就是URL编码 问题 ,如果不对URL进行编码直接加码,那么在解码时,如果字符串存在+这种特殊符号,在解码时会出它替换成 ,此时在 解密 就会 无法 解开,导致错误的结果。 本人解

 

参考:http://www.cnblogs.com/lori/archive/2011/09/08/2170979.html

 

问题,就是URL编码问题,如果不对URL进行编码直接加码,那么在解码时,如果字符串存在“+”这种特殊符号,在解码时会出它替换成“ ”,此时在解密就会无法解开,导致错误的结果。

本人解决方法:

先对字符加密再url编码,这时不会出现+号等字符,然后获取参数后 直接 解密(因为获取参数就没有%之类的了)即可,注意,此处我也不明白,估计是浏览器 自动 url解码了??

 

部分代码如下:(具体des加密解密代码和url加密解密代码可查看之前的问题

加密

long endTimes = System.currentTimeMillis()+1*24*3600*1000;
String para = personname+";"+email+";"+endTimes;
//加密,再url转码,顺序不能修改
String encode = UrlUtil.getURLEncoderString(DesUtil.encrypt(para));

解密

String vc = context.getParameter("vc");
        if(null!=vc){
            try {
                //直接des解码
                String decode = DesUtil.decrypt(vc);
                List list = EmailUtil.parseContent(decode, ";");
            } catch (Exception e) {
                e.printStackTrace();
                context.setRequestAttribute("errorMsg", "链接无效!");
            }
        }

 

网友评论
<