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内 参数加密解密的主要内容,如果未能解决你的问题,请参考以下文章

网页url地址参数的加密一般用啥算法

h5对接,url参数加密

URL参数加密解密

加密 URL 参数返回 NULL 问题

[转]java利用AES实现URL的参数加密

中国空气质量在线监测分析平台之JS加密JS混淆处理