導航:首頁 > 文檔加密 > 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參數加密相關的資料

熱點內容
非科班程序員自學 瀏覽:799
壓縮泡沫鞋底底材 瀏覽:217
程序員職場第一課2正確的溝通 瀏覽:677
遇到不合法app應該怎麼辦 瀏覽:90
匯編程序編譯後的文件 瀏覽:77
大智慧均線源碼 瀏覽:371
單片機排阻的作用 瀏覽:213
滴滴金融app被下架如何還款 瀏覽:210
jpg轉換成pdf免費軟體 瀏覽:741
范里安pdf 瀏覽:443
偽造pdf 瀏覽:75
能刪除android文件夾嗎 瀏覽:446
LINUX使用V2ray 瀏覽:797
找人幫忙注冊app推廣是什麼 瀏覽:820
獨立伺服器如何恢復初始化 瀏覽:11
優秀到不能被忽視pdf 瀏覽:316
導遊程序員家政 瀏覽:586
22乘28的快速演算法 瀏覽:338
軟通動力程序員節2021 瀏覽:847
安卓系統如何卸載安裝包 瀏覽:872