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
查看全文
相关阅读:
Hadoop运行环境搭建
大数据技术快速扫盲篇
基于Cloudera Manager Server的WebUI添加Hive服务实战案例
基于Cloudera Manager Server的WebUI添加Spark服务实战案例
zabbix的聚合图形配置实战案例
zabbix配置短信报警概述
zabbix配置微信报警实战案例
基于Zabbix WebUI的API实现自动化添加主机实战案例
zabbix监控 Nginx web页面实战案例
zabbix agent批量安装并自动监控TCP的11种状态实战案例
原文地址:https://www.cnblogs.com/Dicky/p/188762.html
最新文章
Windows下配置Jmeter环境变量
NameNode和DataNode工作原理剖析
NameNode和SecondaryNameNode工作原理剖析
HDFS的机架感知概述
HDFS的增删改查概述
HDFS的I/O流操作
HDFS集群的API常见操作
HDFS集群中大数据运维常用的命令总结
GitLab的基础使用-常用命令
GitLab的基础使用-客户端克隆(Clone)代码的两种方式
热门文章
GitLab的基础使用-创建项目(projects)
GitLab的基础使用-创建项目组(groups)
GitLab的基础使用-向已经创建的项目组中添加用户
GitLab的基础使用-创建用户(users)
GitLab部署实战案例
DevOps 简介
Apache Hadoop配置日志聚集实战案例
Apache Hadoop配置历史服务器实战案例
Hadoop 集群-伪分布式模式(Pseudo-Distributed Operation)
Hadoop 集群-本地模式(Local (Standalone) Mode)
Copyright © 2011-2022 走看看