URL内 参数加密解密
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL内 参数加密解密相关的知识,希望对你有一定的参考价值。
参考技术A javascript对URL中的参数进行简单加密处理javascript的api本来就支持Base64,因此我们可以很方便的来进行编码和解码。
var encodeData = window.btoa("name=xiaoming&age=10")//编码
var decodeData = window.atob(encodeData)//解码。
下面来个具体的例子来说明如何对url中参数进行转码,并取得解码后的参数
假如要跳转的url = "stu_info.html?name=xiaoming&age=10"
转码:url = "stu_info.html?"+window.btoa("name=xiaoming&age=10");
跳转:window.open(url)或者window.locaton.href = url;
解码:解码时我们首先要从url中获得参数列表,
我们可以通过var paramsString = window.location.search来获取url中?号开始的内容(url的查询部分)即"?name=xiaoming&age=10";
然后去掉?号 paramsString = paramsString.substring(1) //"name=xiaoming&age=10"
去掉& paramsString = paramsString.split("&");//["name=xiaoming","age=10"]
需要指出的是 window.btoa这中编码方式不能直接作用于Unicode字符串。只能将ascci字符串或二进制数据转换成Base64编码过的字符串。如果要对Unicode字符进行编码可以将做如下转换。
var encodeData = window.btoa(window.encodeURIComponent("name=小明&age=10"))//编码
var decodeData = window.decodeURIComponent(window.atob(encodeData))//解码。
获取url参数
//获取url参数
function getQueryString(name)
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var params = window.location.search.substr(1);
params = window.decodeURIComponent(window.atob(params));
var r = params.match(reg);
if (r != null)
return decodeURI(r[2]);
return null;
h5对接,url参数加密
最近在做url带参数跳转页面,发现url地址栏会显示请求的参数,用的是ajax中的post方式,但是貌似没有自动进行加密,这里找到一个解决方案,可以对url中的参数进行加密,在从url中获取参数时直接解密即可。具体实现方式如下:
比如我需要请求的url未加密的地址为:
加密后的地址栏为:
实现加密方法:
var c = "house_id="+house_id+"&customer_id="+customer_id+"&house_address="+house_address;
var d = encodeURIComponent(c); var urlOpen = "addorder.html?"+d;
实现解密的函数如下:
//格式化url中的参数 function parseQueryString(url){ var arr; var name,value; var url = decodeURIComponent(url); var str = url.split("?")[1]; //通过?得到一个数组,取?后面的参数 var items = str.split("&"); //分割成数组 for(var i=0; i<items.length; i++){ arr = items[i].split("="); //["key0", "0"] var name = arr[0]; var value = arr[1]; this[name] = value; } } var urlPara = new parseQueryString(window.location.search); var customer_id = urlPara.customer_id;
以上是关于URL内 参数加密解密的主要内容,如果未能解决你的问题,请参考以下文章