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
查看全文
相关阅读:
创建Variant数组
ASP与存储过程(Stored Procedures)
FileSystemObject对象成员概要
Kotlin 朱涛9 委托 代理 懒加载 Delegate
Kotlin 朱涛 思维4 空安全思维 平台类型 非空断言
Kotlin 朱涛7 高阶函数 函数类型 Lambda SAM
Kotlin 朱涛16 协程 生命周期 Job 结构化并发
Proxy 代理模式 动态代理 cglib MD
RxJava 设计理念 观察者模式 Observable lambdas MD
动态图片 Movie androidgifdrawable GifView
原文地址:https://www.cnblogs.com/Dicky/p/188762.html
最新文章
【面向对象设计基础】监视器
【面向对象设计基础】抽象类
【面向对象设计基础】不变对象
【HeadFirst 设计模式学习笔记】6 命令模式
使DataGrid中的某些列隐藏起来
汉字,五笔,拼音的转换
探索 Word 2007 开发(四):上传图片
探索 Word 2007 开发 II(一):引用 .NET Framework Class Library 在线文档
探索 Word 2007 开发(五):部署插件
探索 Word 2007 开发(三):管理侧栏
热门文章
探索 Word 2007 开发(二):扩展 Ribbon
javascritp读xml
SQL Server 存储过程的分页
Application对象和Session对象
创建TextStream对象的方法
ASP应用程序与会话
Folder对象
javascrpt多文件上传文件
asp分页代码
JavaScript、ASP、ASP.Net、JSP笔记
Copyright © 2011-2022 走看看