最近看了幾個頁面,發現好多都是經過處理的。
不過,裡面附帶著一段javascrpit處理加密的頁面。
下面就簡單說說加密和解密的過程。
一、加密
1、將字串中的每個字元轉換為數字形式
方法是 字串處理的方法 charCodeAt(index)
charCodeAt() 方法可返回指定位置的字元的 Unicode 編碼,也就是將字串數字化了,傳回值是對應字元的 0 - 65535 之間的整數。
比如:
var str="hello world!"var r = str.charCodeAt(0);document.write(r);//輸出為: 104
2、修改數字後,用fromCharCode()方法恢複字元
fromCharCode()方法是 String 的靜態方法,可以將數字 Unicode 編碼指定轉換為字元。
比如,上面的例子
$ = String.fromCharCode(r);document.write($);//輸出為: h
加密的關鍵在於 String.fromChaarCode(r) 這一步!
可以在改變 r 的值,使輸出的字元偏離,比如 r = r + 2
$ = String.fromCharCode( r + 2);document.write($);//輸出為:j
因此,
hello world! 變為 jgnnq"yqtnf#
<html> 變為 >jvon@
二、解密
1、還是先將字元變為uncoide編碼的數字
var str=">jvon@";var r = str.charCodeAt(0);document.write(r);//輸出為: 62
2、使用加密的逆演算法
$ = String.fromCharCode( r - 2);document.write($);//輸出為:<
三、完整的代碼
<script type="text/javascript">//=================================//加密方法//=================================function encode(content){ var $ =""; for(var u=0; u < content.length; u++) { var r = content.charCodeAt(u); $+= String.fromCharCode(r+2); } return $;};//=================================//解密方法//================================= function decode(content){ var $ =""; for(var u=0; u < content.length; u++) { var r = content.charCodeAt(u); $+= String.fromCharCode(r-2); } return $; };//=================================//測試//=================================var str = "hello";document.write(encode(str) +"<br>");document.write(decode(encode(str)));</script>