详解jscript.encode代码的asp函数

2019-04-04 07:58:28来源:爱站网 阅读 ()

新老客户大回馈,云服务器低至5折

更高级的javascript应用程序,可以将JS代码提取为表高亮修改类,使用起来很方便,可以控制表的一行,今天爱站技术频道小编和大家带来详解jscript.encode代码的asp函数,一起来学习一下吧!


?<SCRIPT???LANGUAGE="JavaScript">????
??<!--????
??function???toEncode(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???=???"\r\n<>@"????

??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???tranEncode(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("(JScript|VBscript).encode",???"gmi")????
??while(arr???=???re.exec(unEncodingString))???unEncodingString???=???RegExp.leftContext???+???RegExp.$1???+???RegExp.rightContext????
??return???unEncodingString????
??}????
??//-->????
??</SCRIPT>

原文链接:https://js.aizhan.com/develop/JavaScript/5177.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:深入了解Array的sort方法及使用技巧

下一篇:JavaScript之replace方法的使用说明