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
查看全文
相关阅读:
阿里IM技术分享(六):闲鱼亿级IM消息系统的离线推送到达率优化
IM开发基础知识补课(十):大型IM系统有多难?万字长文,搞懂异地多活!
长连接网关技术专题(六):石墨文档单机50万WebSocket长连接架构实践
手把手教你实现网页端社交应用中的@人功能:技术原理、代码示例等
跟着源码学IM(九):基于Netty实现一套分布式IM系统
网络编程懒人入门(十三):一泡尿的时间,快速搞懂TCP和UDP的区别
探探的IM长连接技术实践:技术选型、架构设计、性能优化
直播系统聊天技术(六):百万人在线的直播间实时聊天消息分发技术实践
基于实践:一套百万消息量小规模IM系统技术要点总结
Datafram 实现作为正文发送邮件
原文地址:https://www.cnblogs.com/Dicky/p/188762.html
最新文章
【更新公告】AirtestIDE更新至1.2.13版本
如何在各大平台下“模拟输入空格”
如何脱离AirtestIDE跑Airtest自动化脚本
聊一聊使用airtestselenium做Web自动化的常见问题
Vue 验证码倒计时实现(刷新保持状态)
ffmpeg视频转换工具使用
project编制进度计划、保存基准
OpenKM安装(CentOS6)
Axure文本框控件的11种类型和支持的浏览器类型
解决mantis不能上传附件问题
热门文章
linux命令:vim文件操作命令、新建用户,查看用户列表,chown命令
project使用1
配置Centos服务器
ImageNet数据集相关介绍和使用梳理
鸢尾花k近邻预测算法
cka真题2021
cka真题笔记
Git用户名密码配置 以及Access denied解决方法
dotnetdump analyze 内存泄漏分析
开源轻量级 IM 框架 MobileIMSDK v6.1.2 发布!
Copyright © 2011-2022 走看看