js加密
① js如何加密加密完之後如何使用
使用內置的三個函數就行,分別是escape(),encodeURI(),以及encodeURIComponent()。
escape() 方法:
採用ISO Latin字元集對指定的字元串進行編碼。所有的空格符、標點符號、特殊字元以及其他非ASCII字元都將被轉化成%xx格式的字元編碼(xx等於該字元在字元集表裡面的編碼的16進制數字)。比如,空格符對應的編碼是%20。
不會被此方法編碼的字元: @ * / +
encodeURI() 方法:
把URI字元串採用UTF-8編碼格式轉化成escape格式的字元串。
不會被此方法編碼的字元:! @ # $& * ( ) = : / ; ? + '
encodeURIComponent() 方法:
把URI字元串採用UTF-8編碼格式轉化成escape格式的字元串。與encodeURI()相比,這個方法將對更多的字元進行編碼,比如 / 等字元。所以如果字元串裡麵包含了URI的幾個部分的話,不能用這個方法來進行編碼,否則 / 字元被編碼之後URL將顯示錯誤。
不會被此方法編碼的字元:! * ( ) '
因此,對於中文字元串來說,如果不希望把字元串編碼格式轉化成UTF-8格式的(比如原頁面和目標頁面的charset是一致的時候),只需要使用
escape。如果你的頁面是GB2312或者其他的編碼,而接受參數的頁面是UTF-8編碼的,就要採用encodeURI或者
encodeURIComponent。
另外,encodeURI/encodeURIComponent是在javascript1.5之後引進的,escape則在javascript1.0版本就有。
② 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>
就會彈出對話框告訴你解密後的結果!
③ 如何將項目中所有的js代碼一次性加密
js代碼是可以進行簡單加密的,比如混淆加密。可以自己搜索一下js 混淆加密,有相關網站提供在線加密服務。
④ 如何在前端調用js對密碼進行加密
加密和解密原則上都應該在後台完成才合乎常理,如果在前端加密,就好比在眾目睽睽之下化妝易容,然後聲稱自己是另一個人一樣,沒意義啊。
如果一定要在前端加密,可以這樣:
<input type="submit" name="submit" value="注冊" onclick="var pwd=document.getElementsByName('password')[0];pwd.value=md5(pwd.value);"/>
⑤ js有幾種加密方式
首先,MD5不是加密演算法,是簽名演算法,哎,到底是有多少國人被毒害了呀。
另外,只要是可以由軟體實現的加密演算法,js都能使用,只是有效率問題,
一般的
非對稱演算法,使用的資源都很龐大,所以js很少有。
而對稱的加密演算法……,由於js是對用戶可見的,所以……就和沒加密一樣。
這也就是為什麼真正的高安全網站都不會選擇用js做加密,而是選擇用https 協議這樣的手段。
再次重申,MD5不是加密演算法,所以不再上述范圍內
⑥ 如何對JS代碼加密
JS加密其實就是對字元進行編碼,也不是一定要用工具有兩個函數的document.write(escape("你好,這是測試!")+"<br>");
document.write(unescape("%u4F60%u597D%uFF0C%u8FD9%u662F%u6D4B%u8BD5%uFF01"));
⑦ 如何破解JS腳本加密
在網頁中加入一個,然後在加密代碼中找document.write(),eval(),execScript()或VBS的EXECUTE語句,並用document.getElementById("textareaID").innerText=STR 替換。加密就不攻自破了。www.hrbfc120.com
(STR是轉換好的字元串變數,如在加密代碼中找到 document.write(s); 就用 document.getElementById("textareaID").innerText=s; 替換)
⑧ 如何將js加密
簡單的說: javascript是一種客戶端語言,即是在用戶的瀏覽器中被執行的,由於許可權不被伺服器控制,所以不可能加密.
多說一點: 雖然js不能加密,但是如果你不太想被別人太容易拿去使用,你可以使用一些工具對javascript的代碼進行壓縮和代碼混淆. 這種工具你搜一下就是一大堆的.
⑨ 用JS方法加密URL
首先,很不推薦你使用get方式發送密碼,最好是使用post.
原因是,你通過一個連接把用戶名和密碼發送到後台,即便密碼不是明文,別人獲取不到密碼明文,但是,只要你這個連接成功登陸過,別人就可以拿這個連接到處登陸.密碼明文加密完全形同虛設.
如果非想使用get方式發送,我可以給你個思路,就是表單附帶發送令牌,這個令牌是表單內的隱藏域,後台里對每一個時刻都不同的字元串做單向加密然後保存SESSION會話,一般使用md5方式,然後表單頁面隱藏域寫出該SESSION的值.發送表單的時候,附帶令牌一起發送,(在url形式中就是多了一個參數),後台驗證令牌是否是保存過的SESSION值,如果是,執行登陸,如果不是,就報錯.
不管令牌是不是正確的,你都需要在每次生成頁面時重新更新一次令牌並輸出,這樣才能保證唯一性.
然後你可以使用js版的md5把密碼處理成加密字元串.
這樣可以躲過部分不熟悉html的,但是如果他懂html,只需查看html的令牌,然後自己去組成url,那麼照樣還是不行.
所以,這種形式仍是不可取的,正宗的方式就是post發送用戶名和密碼,或是ajax的get方式發送.