导航:首页 > 文档加密 > href参数加密

href参数加密

发布时间:2022-10-03 16:33:02

㈠ url参数加密

加密URL参数

插件在访问 Web 程序时,可以使用 Get 方法或 Post 方法提交数据,无论是哪种方法,按照 HTTP 协议的规范,参数总是按照以下格式提交(每对参数名/参数值以“&”号分隔):

参数名1=参数值1&参数名2=参数值2&参数名3=参数值3...

如果您没有使用SSL,所有的参数名和参数值都将以明文的形式通过网络传输到 Web 服务器,显然这种方式是很不安全的,为了保证插件与Web 程序的通讯安全,插件在提交参数前可以对每个参数值使用 Rijndael 加密算法进行加密处理,并使用 Base64 编码转换为可读字符串形式。

Rijndael 加密算法是一种高效的对称加密算法,它是 AES(Advanced Encryption Standard,高级加密算法标准)的实现,在加密和解密时有两个基本参数:初始向量和密钥,Web程序在进行解密时必须使用和插件端设置相同的初始向量和密钥。

下面分别列出了加密和不加密的例子各一个:

a. 不加密:Username=test&Password=123456&ClientIP=192.168.0.200&CurrentTime=2005-07-06+23%3a51%3a29

b. 加密:Username=ZtlBwgvwkS5YV98N9cgO%2fw%3d%3d&Password=vBSchK4dJX7Z2zfUatu9ZQ%3d%3d&CurrentTime=mpNifqRIvBV2xZi3d%2fPli6%2bZwR9BKHs4y6t%2bNS2QIr4%3d

在 Web 程序端必须使用相同的算法来解密各个参数值,具体如何实现取决与您所使用的 Web 程序语言,这就需要您找到特定语言的算法实现。解密一个参数值的过程包括下面三个步骤:

1. 使用 Base64 算法将参数值转换为字节数组;

2. 使用 Rijndael 算法将 1 中得到的字节数组解密得到另一字节数组;

3. 将 2 中得到字节数组用特定的字符集转换成字符串,即得到原始的数据。

插件安装目录下的“GVODClassLib.dll”文件包含了加密和解密的算法实现类 CryptoUtility,它的 Decrypt 方法可以直接将 Base64 编码后的密文解密为原文字符串,如果您的 Web 程序使用的是 asp.net 编写的,可以将该文件拷贝到您 Web 站点的“/bin”目录下,然后按照下面的例子完成解密:

<%@ page language="C#" %>
<%@ import namespace="Com.GVOD" %>
<%
//定义密钥,请改成你加密时使用的密钥
string key = "OEtxF/yyALd2NflVW4KSMspQIozPkSRL+mEdvlBAzUQ=";

//定义初始向量,请改成你加密时使用的初始向量
string iv = "Cz3EXGTEMeIN8PXKFLiZWg==";

//定义密钥长度,请改成你加密时使用的密钥的长度
int keyLength = 256;

//生成 CryptoUtility 类的实例
CryptoUtility util = new CryptoUtility(key, iv, keyLength);

//解密用户名
string username = util.Decrypt(Request["Username"]);

//解密密码
string password = util.Decrypt(Request["Password"]);

//解密其它参数
...
%>

㈡ 如何在URL中传递加密的参数

方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!)加密参数在获取到值后解密就可以了function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null) return unescape(r[2]); //解密 else return null;} // 调用方法alert(GetQueryString("参数名1"));alert(GetQueryString("参数名2"));alert(GetQueryString("参数名3")); 方法二:传统方法function UrlSearch() { var name,value; var str=location.href; //取得整个地址栏 var num=str.indexOf("?"); str=str.substr(num+1); //取得所有参数stringvar.substr(start [, length ] var arr=str.split("&"); //各个参数放到数组里 for(var i=0;i 0){ name=arr[i].substring(0,num); value=arr[i].substr(num+1); this[name]=value; } } } //调用var Request=new UrlSearch(); //实例化alert(Request.id);

㈢ jquery中location.href方法。为什么中文字符默认被加密了,格式是decode加密一样

$.ajax的时候,把location.href用encodeURIComponent编码一下。

㈣ 我的url里面需要传递一个参数比如<a href="a.jspkk=<%=name%>" 怎么加密

加密JS:---------------------------------------------------------------------

function encrypt(str, pwd)
{
//判断密钥是否为空
if(pwd == null || pwd.length <= 0)
{
alert("请输入密钥");
return null;
}

//得到密钥的字符串的Unicode码
var prand = "";
for(var i=0; i<pwd.length; i++)
{
prand += pwd.charCodeAt(i).toString();
//alert(prand);
}

var sPos = Math.floor(prand.length / 5);//返回小于等于其数值参数的最大整数
var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos*2) + prand.charAt(sPos*3) + prand.charAt(sPos*4) + prand.charAt(sPos*5));//返回从字符串转换得到的整数. (charAt返回 String 对象的指定索引处的字符。)
var incr = Math.ceil(pwd.length / 2);//返回数的上限
var mo = Math.pow(2, 31) - 1;//返回基数表达式的指定次幂的值
if(mult < 2)
{
alert("您输入的密钥过于简单或者是长度太短");
return null;
}

var salt = Math.round(Math.random() * 1000000000) % 100000000; //Math.round是四舍五入函数。 Math.random是返回一个伪随机数(0到1之间的double型数)
prand += salt;

while(prand.length > 10)
{
prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();
}

prand = (mult * prand + incr) % mo;
var enc_chr = "";
var enc_str = "";

for(var i=0; i<str.length; i++)
{
enc_chr = parseInt(str.charCodeAt(i) ^ Math.floor((prand / mo) * 255));

if(enc_chr < 16)
{
enc_str += "0" + enc_chr.toString(16);
}
else
enc_str += enc_chr.toString(16);

prand = (mult * prand + incr) % mo;
}

salt = salt.toString(16);

while(salt.length < 8)salt = "0" + salt;
enc_str += salt;

return enc_str;
}

解密JS:---------------------------------------------------------------------

function decrypt(str, pwd,stu)
{
if(str == null || str.length < 8)
{
alert("您输入的内容过短,请重新输入");
return;
}
if(pwd == null || pwd.length <= 0)
{
alert("请输入密钥");
return;
}
var prand = "";

for(var i=0; i<pwd.length; i++)
{
prand += pwd.charCodeAt(i).toString();
}

var sPos = Math.floor(prand.length / 5);
var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos*2) + prand.charAt(sPos*3) + prand.charAt(sPos*4) + prand.charAt(sPos*5));
var incr = Math.round(pwd.length / 2);
var mo = Math.pow(2, 31) - 1;
var salt = parseInt(str.substring(str.length - 8, str.length), 16);
str = str.substring(0, str.length - 8);
prand += salt;

while(prand.length > 10)
{
prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();
}

prand = (mult * prand + incr) % mo;
var enc_chr = "";
var enc_str = "";

for(var i=0; i<str.length; i+=2)
{
enc_chr = parseInt(parseInt(str.substring(i, i+2), 16) ^ Math.floor((prand / mo) * 255));
//alert(enc_chr);
enc_str += String.fromCharCode(enc_chr);
//alert(enc_str);
prand = (mult * prand + incr) % mo;
}

return enc_str;
}

encrypt:加密方法。
str:你需要加密的字符串,pwd 密匙 返回的是一串加密的密文。
decrypt:解密方法。使用密匙+密文,得到原来解密的值

㈤ 怎么在URL中传递加密的参数

方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!)加密参数在获取到值后解密就可以了function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null) return unescape(r[2]); //解密 else return null;} // 调用方法alert(GetQueryString("参数名1"));alert(GetQueryString("参数名2"));alert(GetQueryString("参数名3")); 方法二:传统方法function UrlSearch() { var name,value; var str=location.href; //取得整个地址栏 var num=str.indexOf("?"); str=str.substr(num+1); //取得所有参数stringvar.substr(start [, length ] var arr=str.split("&"); //各个参数放到数组里 for(var i=0;i 0){ name=arr[i].substring(0,num); value=arr[i].substr(num+1); this[name]=value; } } } //调用var Request=new UrlSearch(); //实例化alert(Request.id);

㈥ js如何获取地址栏加密参数

方法一:采用正则表达式获取地址栏参数:(强烈推荐,既实用又方便!)加密参数在获取到值后解密就可以了


functionGetQueryString(name)
{
varreg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)");
varr=window.location.search.substr(1).match(reg);
if(r!=null)
returnunescape(r[2]);//解密
else
returnnull;
}

//调用方法
alert(GetQueryString("参数名1"));
alert(GetQueryString("参数名2"));
alert(GetQueryString("参数名3"));

方法二:传统方法

functionUrlSearch(){
varname,value;
varstr=location.href;//取得整个地址栏
varnum=str.indexOf("?");
str=str.substr(num+1);//取得所有参数stringvar.substr(start[,length]
vararr=str.split("&");//各个参数放到数组里
for(vari=0;i<arr.length;i++){
num=arr[i].indexOf("=");
if(num>0){
name=arr[i].substring(0,num);
value=arr[i].substr(num+1);
this[name]=value;
}
}
}
//调用
varRequest=newUrlSearch();//实例化
alert(Request.id);

javaScript:如何实现超链接调用JS函数处理URL后再跳转呢

<a href="aaa.html?id=123" onclick="return LinkChange(this);">链接</a>
<script>
function LinkChange(v){
var url = v.href; //得到链接的href
var value = url.split('?'); //按?号分隔
if(value.length>1){ //如果URL里有参数
var newUrl = value[0] + "?" + value[1] + "456"; //在这里加密你的Url参数,然后拼接
window.open(newUrl,"_self");
}
return false;
}
</script>

㈧ 怎么在URL中传递加密的参数

方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!)加密参数在获取到值后解密就可以了function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null) return unescape(r[2]); //解密 else return null;} // 调用方法alert(GetQueryString("参数名1"));alert(GetQueryString("参数名2"));alert(GetQueryString("参数名3"));

方法二:传统方法function UrlSearch() { var name,value; var str=location.href; //取得整个地址栏 var num=str.indexOf("?"); str=str.substr(num+1); //取得所有参数stringvar.substr(start [, length ] var arr=str.split("&"); //各个参数放到数组里 for(var i=0;i 0){ name=arr[i].substring(0,num); value=arr[i].substr(num+1); this[name]=value; } } } //调用var Request=new UrlSearch(); //实例化alert(Request.id);

php url参数加密

加密:$str = base64_encode("123");
解密:base64_decode($str);

㈩ 怎么用js来加密url的传递参数

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1.传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

例如:<script language="javascript">document.write('<a href="http://passport..com/?logout&aid=7&u='+encodeURIComponent("http://cang..com/bruce42")+'">退出</a>');</script>

2.进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI("http://cang..com/do/s?word=网络&ct=21");

3. js使用数据时可以使用escape

例如:搜藏中history纪录。

4.escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

阅读全文

与href参数加密相关的资料

热点内容
云服务器性能怎么看 浏览:739
图解政治pdf 浏览:162
自制可编程计算机 浏览:132
每个文件夹放入一张图片 浏览:453
cgzip压缩文件夹 浏览:591
如何找下载的app 浏览:470
程序员之死最新进展 浏览:261
台电u盘可以下载加密吗 浏览:697
java培训机构上海 浏览:616
长城服务器怎么装机 浏览:355
pm和hm哪个软件编程好 浏览:205
咋样把文件夹强力去除 浏览:989
jvmgc算法 浏览:599
我的世界怎样控制命令方块发文字 浏览:863
期货翻番计算法 浏览:495
华为底部app如何增加 浏览:115
为什么用了几个星期的安卓充电器就坏了 浏览:358
服务器风扇响怎么回事 浏览:16
django打包编译 浏览:196
u盘加密码视频 浏览:165