❶ 如何加密url後的數字參數
加密參數是jsp參數傳遞中的一種安全措施,加密方法如下:
建議使用對稱加密如:DES或者是PBE演算法。
加密演算法如下:
public static String encrypt(String key, String plainText) throws Exception {
String encryptTxt = "";
try {
byte[] salt = new byte[8];
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(key.getBytes());
byte[] digest = md.digest();
for (int i = 0; i < 8; i++) {
salt[i] = digest[i];
}
❷ 網頁url地址參數的加密一般用什麼演算法
這個不是md5加密 應該是自定義的一種加密方式
url用加密 主要是防止在傳參的時候遇到中文 而出現亂碼問題
url傳參一般都是自定義的加密演算法 因為這種加密可以破解 這樣就知道
url所傳的參數是什麼 如果用md5的話 估計很難破解 基本上不可行
❸ 分享如何使用PHP將URL地址參數進行加密傳輸
可以寫個加密解密的演算法 a變e b變f之類的 編程的應該都寫過 用的時候解密下
或者url存到資料庫中 分享的只是id之類的其他代指 使用的時候去資料庫查詢真實url
❹ url傳遞參數,base64加密
base64前端加密是為了讓傳輸過程中不讓別人直接抓包到明文路徑或者密碼,但是base64能被反解碼到,最好用MD5。另外,在PHP端必定有能識別的模塊,要麼是反解碼,要麼就是直接存的就是base64的地址。。簡單地說,你這樣簡單替換肯定是不行的啦
❺ 我的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:解密方法。使用密匙+密文,得到原來解密的值
❻ java 中 url地址欄里傳的數字值,如何加密
現在很多加密演算法的 比如你可以使用XXTea加密。前端使用post請求,請求之前將你要傳的參數 組合成一個json格式,之後進行XXTea加密,加密完之後 將加密得到的字元串放到post 請求數據中。後台加一個攔截器,拿到你的請求地址以及加密字元串,然後將字元串解密 得到一個map,再通過request得到的ParamRequestWrapper 將解密後的參數放回去,這樣你的方法就可以照常拿到數據了。
❼ 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加密
你好,url加密可用java.net.URLEncoder.encode{Base64編碼(加密字串),StringCode}這樣的方法來對url中的參數進行加密。
我們來說下如何加密
一、演算法的選擇:
對於像對url中的參數進行加密的過程,我不建議使用rea或者是二重des這樣的加密演算法,主要原因在於性能速度會受影響。建議使用對稱加密如:DES或者是PES演算法。
二、加密原理
對於一個純文本,加密後它會變成一堆亂碼,這堆亂碼包括了許多非法字元,不希望把這些字元放入bean中,因此加密完後,還要對加密結果進行besa64編碼。
加密過程:輸入口令{KEY}-->加密文本-->以besa64對加密後的結果進行編碼-->以java.net.URLEncoder.encode編碼成瀏覽器可以識別的形式-->傳輸給接受的action
❾ 怎麼用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編碼結果相同。
❿ 如何在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);