中文(简体)
Encode,实际是一种不完全的Unicode 文本(见过Unicode 吗?汉字全是%uxxxx的),当表示英文或数字时,它与普通文本并无区别。但在表示各种控制符、特殊符号、扩展ASCII 字符(如汉字)甚至空格时,它就把它们全变成了%xx%xx的形式。 解密ENCODE有很多方法,我所提供的是一个网页的解密代码,代码如下:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>网页解密</title> <style> td,select,input{font-size:10.5pt; color:#000000; height:16pt} textarea{font-size:14; color:#000000} a:link {text-decoration:none; color:#555555} a:hover {text-decoration:underline; color:#555555; background-color:ffff00} a:visited {text-decoration:none; color:#555555} </style> </head> <BODY> <script language="javascript"> <!-- //more javascript from http://downcodes.com function screncode(s,l) {enc=new ActiveXObject("Scripting.Encoder"); return enc.EncodeScriptFile("."+l,s,0,l+"cript"); } var STATE_COPY_INPUT = 100 var STATE_READLEN = 101 var STATE_DECODE = 102 var STATE_UNESCAPE = 103 var pick_encoding = new Array( 1, 2, 0, 1, 2, 0, 2, 0, 0, 2, 0, 2, 1, 0, 2, 0, 1, 0, 2, 0, 1, 1, 2, 0, 0, 2, 1, 0, 2, 0, 0, 2, 1, 1, 0, 2, 0, 2, 0, 1, 0, 1, 1, 2, 0, 1, 0, 2, 1, 0, 2, 0, 1, 1, 2, 0, 0, 1, 1, 2, 0, 1, 0, 2 ) var rawData = new Array( 0x64,0x37,0x69, 0x50,0x7E,0x2C, 0x22,0x5A,0x65, 0x4A,0x45,0x72, 0x61,0x3A,0x5B, 0x5E,0x79,0x66, 0x5D,0x59,0x75, 0x5B,0x27,0x4C, 0x42,0x76,0x45, 0x60,0x63,0x76, 0x23,0x62,0x2A, 0x65,0x4D,0x43, 0x5F,0x51,0x33, 0x7E,0x53,0x42, 0x4F,0x52,0x20, 0x52,0x20,0x63, 0x7A,0x26,0x4A, 0x21,0x54,0x5A, 0x46,0x71,0x38, 0x20,0x2B,0x79, 0x26,0x66,0x32, 0x63,0x2A,0x57, 0x2A,0x58,0x6C, 0x76,0x7F,0x2B, 0x47,0x7B,0x46, 0x25,0x30,0x52, 0x2C,0x31,0x4F, 0x29,0x6C,0x3D, 0x69,0x49,0x70, 0x3F,0x3F,0x3F, 0x27,0x78,0x7B, 0x3F,0x3F,0x3F, 0x67,0x5F,0x51, 0x3F,0x3F,0x3F, 0x62,0x29,0x7A, 0x41,0x24,0x7E, 0x5A,0x2F,0x3B, 0x66,0x39,0x47, 0x32,0x33,0x41, 0x73,0x6F,0x77, 0x4D,0x21,0x56, 0x43,0x75,0x5F, 0x71,0x28,0x26, 0x39,0x42,0x78, 0x7C,0x46,0x6E, 0x53,0x4A,0x64, 0x48,0x5C,0x74, 0x31,0x48,0x67, 0x72,0x36,0x7D, 0x6E,0x4B,0x68, 0x70,0x7D,0x35, 0x49,0x5D,0x22, 0x3F,0x6A,0x55, 0x4B,0x50,0x3A, 0x6A,0x69,0x60, 0x2E,0x23,0x6A, 0x7F,0x09,0x71, 0x28,0x70,0x6F, 0x35,0x65,0x49, 0x7D,0x74,0x5C, 0x24,0x2C,0x5D, 0x2D,0x77,0x27, 0x54,0x44,0x59, 0x37,0x3F,0x25, 0x7B,0x6D,0x7C, 0x3D,0x7C,0x23, 0x6C,0x43,0x6D, 0x34,0x38,0x28, 0x6D,0x5E,0x31, 0x4E,0x5B,0x39, 0x2B,0x6E,0x7F, 0x30,0x57,0x36, 0x6F,0x4C,0x54, 0x74,0x34,0x34, 0x6B,0x72,0x62, 0x4C,0x25,0x4E, 0x33,0x56,0x30, 0x56,0x73,0x5E, 0x3A,0x68,0x73, 0x78,0x55,0x09, 0x57,0x47,0x4B, 0x77,0x32,0x61, 0x3B,0x35,0x24, 0x44,0x2E,0x4D, 0x2F,0x64,0x6B, 0x59,0x4F,0x44, 0x45,0x3B,0x21, 0x5C,0x2D,0x37, 0x68,0x41,0x53, 0x36,0x61,0x58, 0x58,0x7A,0x48, 0x79,0x22,0x2E, 0x09,0x60,0x50, 0x75,0x6B,0x2D, 0x38,0x4E,0x29, 0x55,0x3D,0x3F ) var transformed = new Array() for (var i=0; i<3; i++) transformed[i] = new Array() for (var i=31; i<=126; i++) for (var j=0; j<3; j++) transformed[j][rawData[(i-31) * 3 + j]] = (i==31) ? 9 : i var digits = new Array() for (var i=0; i<26; i++) { digits["A".charCodeAt(0)+i] = i digits["a".charCodeAt(0)+i] = i+26 } for (var i=0; i<10; i++) digits["0".charCodeAt(0)+i] = i+52 digits[0x2b] = 62 digits[0x2f] = 63 function unescape(char) { var escapes = "#&!*$" var escaped = "rn<>@" if (char.charCodeAt(0) > 126) return char if (escapes.indexOf(char) != -1) return escaped.substr(escapes.indexOf(char), 1) return "?" } function decodeBase64(string) { var val = 0 val += (digits[string.substr(0,1).charCodeAt(0)] << 2) val += (digits[string.substr(1,1).charCodeAt(0)] >> 4) val += (digits[string.substr(1,1).charCodeAt(0)] & 0xf) << 12 val += ((digits[string.substr(2,1).charCodeAt(0)] >> 2) << 8) val += ((digits[string.substr(2,1).charCodeAt(0)] & 0x3) << 22) val += (digits[string.substr(3,1).charCodeAt(0)] << 16) return val } function strdec(encodingString) { var marker = "#@~^" var stringIndex = 0 var scriptIndex = -1 var unEncodingIndex = 0 var char = null var encodingLength = unEncodinglength = 0 var state = STATE_COPY_INPUT var unEncodingString = "" var re, arr while(state) { switch (state) { case (STATE_COPY_INPUT) : scriptIndex = encodingString.indexOf(marker, stringIndex) if (scriptIndex != -1) { unEncodingString += encodingString.substring(stringIndex, scriptIndex) scriptIndex += marker.length state = STATE_READLEN } else { stringIndex = stringIndex==0 ? 0 : stringIndex unEncodingString += encodingString.substr(stringIndex, encodingString.length) state = 0 } break case (STATE_READLEN) : encodingLength = encodingString.substr(scriptIndex, 6) unEncodinglength = decodeBase64(encodingLength) scriptIndex += (6 + "==".length) state = STATE_DECODE break case (STATE_DECODE) : if (!unEncodinglength) { stringIndex = scriptIndex + "DQgAAA==^#~@".length unEncodingIndex = 0 state = STATE_COPY_INPUT break } char = encodingString.substr(scriptIndex, 1) if (char == "@") state = STATE_UNESCAPE else { if (char.charCodeAt(0) < 0xFF) { unEncodingString += String.fromCharCode(transformed[pick_encoding[unEncodingIndex%64]][char.charCodeAt(0)]) unEncodingIndex++ } else { unEncodingString += char } scriptIndex++ unEncodinglength-- break } case STATE_UNESCAPE: unEncodingString += unescape(encodingString.substr(++scriptIndex, 1)) scriptIndex++; unEncodinglength -=2 unEncodingIndex++ state = STATE_DECODE break } } re = new RegExp("(<a href='http://www.downcodes.com/' color='#bb0000'><FONT color=#f73809>JS</Font></a>cript|VBscript).encode", "gmi") while(arr = re.exec(unEncodingString)) unEncodingString = RegExp.leftContext + RegExp.$1 + RegExp.rightContext return unEncodingString } //--> </script> <form name=qq> <p align="center"><b><font face="华文中宋" color="#0000FF" size="6">ENCODE加 密 解 密</font></b></p> <p> <br> 请输入要加密或解密的文本:</p> <div align=center> <table><tr align=center><td colspan=2> <textarea name=codeinput cols=100 rows="15"></textarea> </td></tr> <tr align=center><td> <input type="button" value="Encode加密" onclick="this.form.codeinput.value=screncode(this.form.codeinput.value,'<a href='http://www.downcodes.com/' color='#bb0000'><FONT color=#f73809>JS</Font></a>')"> </td><td> <p align="center"> <input type="button" value="Encode解密" onclick="this.form.codeinput.value=strdec(this.form.codeinput.value)"> <br> </p> </td> </form></form></form></tr></table> </form> <p style="width:100%;padding:0 40px;text-align:left">说明:</p> <p style="width:100%;padding:0 40px;text-align:left">加密时应只加密脚本部分,不加密脚本标记<script language="javascript">,</p> <p style="width:100%;padding:0 40px;text-align:left">并且加密后脚本标记应改为:<script language="<a href='http://www.netbei.com/Article/art/art5/Index.html' color='#bb0000'><FONT color=#f73809>JS</Font></a>cript.Encode"></p> <div align=center><br> <table width=95%><tr><td align=left> 网页解密® 1.00 </td></tr></table> </div><br><p> <a href='http://www.downcodes.com/' color='#bb0000'><FONT color=#f73809>建站学院</Font></a> </div> </BODY>