DES加密后get获取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", "链接无效!");
            }
        }
时间: 2024-10-05 20:48:46

DES加密后get获取url参数无法解密问题的相关文章

js获取url参数

   //获取url参数    function getRequest() {         var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object();         if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for(var i = 

JS中获取URL参数

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script src="/script/jquery-1.6.

纯JS设置首页,加入收藏,获取URL参数,解决中文乱码

雪影工作室版权所有,转载请注明[http://blog.csdn.net/lina791211] 1.前言 纯Javascript 设置首页,加入收藏. 2.设置首页 // 设置为主页 function SetHome(obj, vrl) { try { obj.style.behavior = 'url(#default#homepage)'; obj.setHomePage(vrl); } catch (e) { if (window.netscape) { try { netscape.s

python测试开发django-4.获取url参数和name的作用

前言 如打开博客园按时间分类标签页[https://www.cnblogs.com/yoyoketang/archive/2018/10.html],里面是时间参数是动态的,如果我想获取里面的时间参数2018和10这两个参数,这就涉及到url参数的获取了. 获取url参数 先用path去匹配一个url地址,类似于:archive/2018/10.html,于是取两个参数名称year,month.参数用<name>这种格式 from django.conf.urls import url fro

django-4.获取url参数和name的作用

前言 如打开博客园按时间分类标签页[https://www.cnblogs.com/yoyoketang/archive/2018/10.html],里面是时间参数是动态的,如果我想获取里面的时间参数2018和10这两个参数,这就涉及到url参数的获取了. 获取url参数 先用path去匹配一个url地址,类似于:archive/2018/10.html,于是取两个参数名称year,month.参数用<name>这种格式 from django.conf.urls import url fro

angular6 路由拼接查询参数如 ?id=1 并获取url参数

angular6 路由拼接查询参数如 ?id=1 并获取url参数 路由拼接参数: <div class="category-border" [routerLink]="['/list/' + category.id + '/' + category.slug]" [queryParams]="{id: 1}"> 拼接后在浏览器显示: 域名  http://localhost:4200/?id=1 angular 获取参数 id 的值

js对特殊字符转义、时间格式化、获取URL参数

/*特殊字符转义*/ function replace_html(str) { var str = str.toString().replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"'); return str; } /* *时间格式化 *例子:time = new Date().Format(

JS获取url参数及url编码、解码

完整的URL由这几个部分构成:scheme://host:port/path?query#fragment ,各部分的取法如下: window.location.href:获取完整url的方法:,即scheme://host:port/path?query#fragment window.location.protocol:获取rul协议scheme window.location.host:获取host window.location.port:获取端口号 window.location.pa

【转】AngularJs $location获取url参数

// 带#号的url,看?号的url,见下面 url = http://qiaole.sinaapp.com?#name=cccccc $location.absUrl(); // http://qiaole.sinaapp.com?#name=cccccc $location.host(); // qiaole.sinaapp.com $location.port(); // 80 $location.protocol(); // http $location.url(); // ?#name