js參數加密
⑴ 關於js 函數加密
<pre t="code" l="js">你可以到網上下面所用的js文件。
1、base64加密
在頁面中引入base64.js文件,調用方法為:
<script type="text/javascript" src="base64.js"></script>
<script type="text/javascript">
var b = new Base64();
var str = b.encode("admin:admin");
alert("base64 encode:" + str);
str = b.decode(str);
alert("base64 decode:" + str);
</script>
2、md5加密
在頁面中引用md5.js文件,調用方法為
<script type="text/ecmascript" src="md5.js"></script>
<script type="text/javascript">
var hash = hex_md5("123dafd");
alert(hash)
</script>
3、sha1加密
據說這是最安全的加密
頁面中引入sha1.js,調用方法為
<script type="text/ecmascript" src="sha1.js"></script>
<script type="text/javascript">
var sha = hex_sha1('mima')
alert(sha)
</script>
⑵ 如何對JS代碼加密
JS加密其實就是對字元進行編碼,也不是一定要用工具有兩個函數的document.write(escape("你好,這是測試!")+"<br>");
document.write(unescape("%u4F60%u597D%uFF0C%u8FD9%u662F%u6D4B%u8BD5%uFF01"));
⑶ 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);
⑷ 用JS方法加密URL
首先,很不推薦你使用get方式發送密碼,最好是使用post.
原因是,你通過一個連接把用戶名和密碼發送到後台,即便密碼不是明文,別人獲取不到密碼明文,但是,只要你這個連接成功登陸過,別人就可以拿這個連接到處登陸.密碼明文加密完全形同虛設.
如果非想使用get方式發送,我可以給你個思路,就是表單附帶發送令牌,這個令牌是表單內的隱藏域,後台里對每一個時刻都不同的字元串做單向加密然後保存SESSION會話,一般使用md5方式,然後表單頁面隱藏域寫出該SESSION的值.發送表單的時候,附帶令牌一起發送,(在url形式中就是多了一個參數),後台驗證令牌是否是保存過的SESSION值,如果是,執行登陸,如果不是,就報錯.
不管令牌是不是正確的,你都需要在每次生成頁面時重新更新一次令牌並輸出,這樣才能保證唯一性.
然後你可以使用js版的md5把密碼處理成加密字元串.
這樣可以躲過部分不熟悉html的,但是如果他懂html,只需查看html的令牌,然後自己去組成url,那麼照樣還是不行.
所以,這種形式仍是不可取的,正宗的方式就是post發送用戶名和密碼,或是ajax的get方式發送.
⑸ js有幾種加密方式
首先,MD5不是加密演算法,是簽名演算法,哎,到底是有多少國人被毒害了呀。
另外,只要是可以由軟體實現的加密演算法,js都能使用,只是有效率問題,
一般的
非對稱演算法,使用的資源都很龐大,所以js很少有。
而對稱的加密演算法……,由於js是對用戶可見的,所以……就和沒加密一樣。
這也就是為什麼真正的高安全網站都不會選擇用js做加密,而是選擇用https 協議這樣的手段。
再次重申,MD5不是加密演算法,所以不再上述范圍內
⑹ 怎麼用js來加密url的傳遞參數
加密代碼
function eb(ting)
{
//傳入要加密的url
//獲取url參數部分
var paraString = ting.substring(ting.indexOf("?")+1,ting.length);
//將加密後的參數重新組合到url中
var rul=ting.substring(0,ting.indexOf("?")+1)+escape(paraString);
//跳轉到rul頁面呢
location.href=rul;
}
解密代碼
var urlPara = location.search; //獲取參數部分
urlPara=unescape(urlPara);//對參數解密
//分析參數
function getPara(paraName){
var reg = new RegExp("[&|?]"+paraName+"=([^&$]*)", "gi");
var a = reg.test(urlPara);
return a ? RegExp.$1 : "";
}
//捕獲參數並進行操作
//window.onload = function(){
//var url= getPara("id"); //捕獲到url參數
//document.getElementById("TextBox1").value = url;
//}
⑺ js中常見的數據加密與解密的方法
加密在我們前端的開發中也是經常遇見的。本文只把我們常用的加密方法進行總結。不去糾結加密的具體實現方式(密碼學,太龐大了)。
常見的加密演算法基本分為這幾類,
RSA加密:RSA加密演算法是一種非對稱加密演算法。在公開密鑰加密和電子商業中RSA被廣泛使用。(這才是正經的加密演算法)
非對稱加密演算法:非對稱加密演算法需要兩個密鑰:公開密鑰(publickey:簡稱公鑰)和私有密鑰(privatekey:簡稱私鑰)。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。
DES全稱為Data Encryption Standard,即數據加密標准,是一種使用密鑰加密的塊演算法
DES演算法的入口參數有三個:Key、Data、Mode。其中Key為7個位元組共56位,是DES演算法的工作密鑰;Data為8個位元組64位,是要被加密或被解密的數據;Mode為DES的工作方式,有兩種:加密或解密。
AES這個標准用來替代原先的DES
DES/AES我們合並在一起介紹其用法和特點
Base64是一種用64個字元來表示任意二進制數據的方法。base64是一種編碼方式而不是加密演算法。只是看上去像是加密而已(嚇唬人)。
⑻ JS加密方法
本文一共介紹了七種方法:
一:最簡單的加密解密
二:轉義字元""的妙用
三:使用Microsoft出品的腳本編碼器Script Encoder來進行編碼 (自創簡單解碼)
四:任意添加NUL空字元(十六進制00H) (自創)
五:無用內容混亂以及換行空格TAB大法
六:自寫解密函數法
七:錯誤的利用 (自創)
在做網頁時(其實是網頁木馬呵呵),最讓人煩惱的是自己辛辛苦苦寫出來的客戶端IE運行的JAVASCRIPT代碼常常被別人輕易的拷貝,實在讓自己的心裡有點不是滋味,要知道自己寫點東西也挺累的......^*^
但我們也應該清楚地認識到因為JAVASCRIPT代碼是在IE中解釋執行,要想絕對的保密是不可能的,我們要做的就是盡可能的增大拷貝者復制的難度,讓他知難而退(但願~!~),下面我結合自己這幾年來的實踐,及個人研究的心得,和大家一起來探討一下網頁中JAVASCRIPT代碼的加密解密技術。
以加密下面的JAVASCRIPT代碼為例:
<SCRIPT LANGUAGE="JavaScript">
alert("《黑客防線》");
</SCRIPT>
一:最簡單的加密解密
大家對於JAVASCRIPT函數escape()和unescape()想必是比較了解啦(很多網頁加密在用它們),分別是編碼和解碼字元串,比如例子代碼用escape()函數加密後變為如下格式:
alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
如何?還看的懂嗎?當然其中的ASCII字元"alert"並沒有被加密,如果願意我們可以寫點JAVASCRIPT代碼重新把它加密如下:
%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
呵呵!如何?這次是完全都加密了!
當然,這樣加密後的代碼是不能直接運行的,幸好還有eval(codeString)可用,這個函數的作用就是檢查JavaScript代碼並執行,必選項 codeString 參數是包含有效 JavaScript 代碼的字元串值,加上上面的解碼unescape(),加密後的結果如下:
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");
eval(code)
</SCRIPT>
是不是很簡單?不要高興,解密也就同樣的簡單,解密代碼都擺給別人啦(unescape())!呵呵
二:轉義字元""的妙用
大家可能對轉義字元""不太熟悉,但對於JavaScript提供了一些特殊字元如:n (換行)、 r (回車)、' (單引號 )等應該是有所了解的吧?其實""後面還可以跟八進制或十六進制的數字,如字元"a"則可以表示為:"141"或"x61"(注意是小寫字元"x"),至於雙位元組字元如漢字"黑"則僅能用十六進製表示為"u9ED1"(注意是小寫字元"u"),其中字元"u"表示是雙位元組字元,根據這個原理例子代碼則可以表示為:
八進制轉義字元串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>
十六進制轉義字元串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>
這次沒有了解碼函數,因為JavaScript執行時會自行轉換,同樣解碼也是很簡單如下:
<SCRIPT LANGUAGE="JavaScript">
alert("")
</SCRIPT>
就會彈出對話框告訴你解密後的結果!
⑼ 京東post登陸參數js分析,密碼加密的RSA加密實現
老規矩先用錯誤信息登陸一下抓一下包,看看有那些post欄位:
大概我們就知道我們要分析的欄位有nloginpwd其餘欄位還不清楚,就在上下在看看其他數據包,根據pubkey我們猜測加密方式大概是RSA,繼續查看其他數據包,找到一個有價值的get包
信息是:
沒有發現明確的關鍵字,但是可以猜想bg、challenge、patch應該和我們的加密參數相關,但是不確定,只有繼續分析加密的js片段:
其中好幾個欄位都是$("#??")格式,這種表示是來自頁面的,那在看看網頁源碼
果然發現了很多有價值的東西在post表單中的,其中只有兩個參數是需要單獨獲取的,其餘都是從html源碼裡面解析出來的
authcode來源
是獲取的源碼中的一個值,再看源碼
看樣子是在驗證碼操作的時候觸發的一個請求,返回的authcode的值,查看authcode請求的數據包
這個請求看起來不是那麼友好,有好幾個疑似加密欄位,這個參數暫時放放,繼續分析我們的passWord的加密。
繼續深入getEntryptPwd($('#nloginpwd').val()),查看源碼
核心的就兩行
encrypt.setPublicKey(pubKey); return encrypt.encrypt(pwd);這必定是RSA加密無疑了,繼續查看源碼,單獨的一個源碼文件,一共3300多行,刪減版如下
JSEncrypt是前端使用的實現RSA加密的庫,看樣子應該比較標准,那就試試能不能改寫了,復制全部源碼到node.js,會提示navigator、window未定義,這個問題很簡單,在文件頭定義
var navigator = this;
var window = this
然後在文件尾部寫個調用程序試試
是可以成功返回RSA加密結果的
京東的post請求不是太難,參數也能在源碼中找到,但是他的難度在發出post請求之前的一個get請求,這個get請求和驗證有關,和用戶名相關,簡單看了一下感覺有點復雜,留在第二篇講獲取authcode參數的其他參數是怎麼來的。
ID:python之戰
|作|者|公(zhong)號:python之戰
專注Python,專注於網路爬蟲、RPA的學習-踐行-總結
喜歡研究和分享技術瓶頸,歡迎關注
獨學而無友,則孤陋而寡聞!
⑽ 介紹一點js加密的方法
一:最簡單的加密解密
大家對於JAVASCRIPT函數escape()和unescape()想必是比較了解啦(很多網頁加密在用它們),分別是編碼和解碼字元串,比如例子代碼用escape()函數加密後變為如下格式:
alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
如何?還看的懂嗎?當然其中的ASCII字元"alert"並沒有被加密,如果願意我們可以寫點JAVASCRIPT代碼重新把它加密如下:
%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
呵呵!如何?這次是完全都加密了!
當然,這樣加密後的代碼是不能直接運行的,幸好還有eval(codeString)可用,這個函數的作用就是檢查JavaScript代碼並執行,必選項 codeString 參數是包含有效 JavaScript 代碼的字元串值,加上上面的解碼unescape(),加密後的結果如下:
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");
eval(code)
</SCRIPT>
是不是很簡單?不要高興,解密也就同樣的簡單,解密代碼都擺給別人啦(unescape())!呵呵
二:轉義字元"\"的妙用
大家可能對轉義字元"\"不太熟悉,但對於JavaScript提供了一些特殊字元如:\n (換行)、 \r (回車)、\' (單引號 )等應該是有所了解的吧?其實"\"後面還可以跟八進制或十六進制的數字,如字元"a"則可以表示為:"\141"或"\x61"(注意是小寫字元"x"),至於雙位元組字元如漢字"黑"則僅能用十六進製表示為"\u9ED1"(注意是小寫字元"u"),其中字元"u"表示是雙位元組字元,根據這個原理例子代碼則可以表示為:
八進制轉義字元串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("\141\154\145\162\164\50\42\u9ED1\u5BA2\u9632\u7EBF\42\51\73")
</SCRIPT>
十六進制轉義字元串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")
</SCRIPT>
這次沒有了解碼函數,因為JavaScript執行時會自行轉換,同樣解碼也是很簡單如下:
<SCRIPT LANGUAGE="JavaScript">
alert("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")
</SCRIPT>
就會彈出對話框告訴你解密後的結果!
