zoukankan
html css js c++ java
网页代码常用加解密
代码如下:
<html> <head> <title>网页代码常用加解密</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <SCRIPT LANGUAGE="JavaScript"> <!-- var Words; function SetWords(word) { Words=word.value; } function SetNewWords(form) { if (form1.Word.value != "") { var NewWords; NewWords=unescape(Words); form.NewWords.value=NewWords; } } function SetNewWords1(form) { if (form1.Word.value != "") { var NewWords; NewWords=escape(Words); form.NewWords.value=NewWords; } } function screncode(s,l) { if (form1.Word.value != "") { enc=new ActiveXObject("Scripting.Encoder"); return enc.EncodeScriptFile("."+l,s,0,l+"cript"); } else { return ""; } } 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 unescape2(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 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+=unescape2(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> </head> <body> <form name="form1"> <center><b><font color="blue" size="+2">网页代码常用加解密</font></b><br><br> <font color="green"><b>加密前代码<br>↓<br></b></font><textarea cols="80" name="Word" onChange="SetWords(this)" rows="6"></textarea><br> <input type="button" name="Escape" onClick="SetNewWords1(this.form)" value="Escape加密"> <input type="button" name="Unescape" onclick="SetNewWords(this.form)" value="Escape解密"> <input type="button" name="Encode" value="Encode加密" onclick="this.form.NewWords.value=screncode(this.form.Word.value,'JS')"> <input type="button" name="Decode" value="Encode解密" onclick="this.form.NewWords.value=strdec(this.form.Word.value)"><br> <br><font color=green><b>加密后代码<br>↓<br></b></font><textarea cols="80" name="NewWords" rows="6"></textarea> </center> </form> </body> </html>
[Ctrl+A 全选 提示:你可先修改部分代码,再点运行代码]
青苹果Web应用商店
https://webapp.taobao.com/
PHP/ASP.NET/ASP/UCHOME/DISCUZ! X系列网站开发,详细需求联系
QQ:8511978
查看全文
相关阅读:
【python3之文件操作】
【Python3之字符编码】
【python3之变量,输入输出,判断,循环】
【Python3之正则re】
【Python3的命名空间与作用域,闭包函数,装饰器】
【Python3的函数初识】
【Python3的进制扫盲】
JS实现数组去重方法总结(六种方法)
localstorage sessionstorage和cookie的区别,以及他们各自的用法总结
es6 javascript对象方法Object.assign()
原文地址:https://www.cnblogs.com/Dicky/p/188762.html
最新文章
HDU-1358 Period 字符串问题 KMP算法 求最小循环节
HDU-3746 Cyclic Nacklace 字符串匹配 KMP算法 求最小循环节
[笔记-计算几何] 计算几何基础
[专题-数论]数论基础
POJ-3348 Cows 计算几何 求凸包 求多边形面积
POJ-1113 Wall 计算几何 求凸包
POJ-2318 TOYS 计算几何 判断点在线段的位置
HDU-5685 Problem A 求乘法逆元
XSS Filter Evasion Cheat Sheet 中文版
常见Web源码泄露总结
热门文章
XSS插入绕过一些方式总结
实现对第三方应用任意SO注入
IDA 调试 Android 方法及简单的脱壳实现
无特征过狗一句话猥琐思路(代码执行)
NavigationDrawer和NavigationView-Android M新控件
Android SlidingMenu 使用详解
Android Fragment 真正的完全解析(上)
【Python3之迭代器,生成器】
【Python3之函数对象】
【Python3之内置函数】
Copyright © 2011-2022 走看看