求解开jscript.encode代码的asp函数


Posted in Javascript onFebruary 28, 2007

javascript函数已经有了,有没有Asp的函数???   
  或者有没有高手可以把下面的写成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>

asp 不等于 vbs, 只是个框架而已
这段代码你在 script 里加个 runat="server" 然后直接调用这个函数就可以了
<SCRIPT   LANGUAGE="JavaScript" runat="server">...
<%
toEncode(xxx)
%>
Javascript 相关文章推荐
css把超出的部分显示为省略号的方法兼容火狐
Jul 23 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
Jun 08 Javascript
jquery解析json格式数据的方法(对象、字符串)
Nov 24 Javascript
基于jquery实现省市区三级联动效果
Dec 25 Javascript
值得分享的bootstrap table实例
Sep 22 Javascript
JS禁止查看网页源代码的实现方法
Oct 12 Javascript
微信小程序 教程之列表渲染
Oct 18 Javascript
javascript阻止事件冒泡和浏览器的默认行为
Jan 21 Javascript
JavaScript实现256色转灰度图
Feb 22 Javascript
基于JavaScript实现表格滚动分页
Nov 22 Javascript
js实现贪吃蛇游戏(简易版)
Sep 29 Javascript
Vue基本指令实例图文讲解
Feb 25 Vue.js
用正则获取指定路径文件的名称
Feb 27 #Javascript
setTimeout和setInterval的浏览器兼容性分析
Feb 27 #Javascript
javascript里的条件判断
Feb 27 #Javascript
javascript第一课
Feb 27 #Javascript
javascript编程起步(第三课)
Feb 27 #Javascript
javascript编程起步(第二课)
Feb 27 #Javascript
javascript编程起步(第五课)
Feb 27 #Javascript
You might like
PHP 调试工具Debug Tools
2011/04/30 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
自己封装的javascript事件队列函数版
2014/06/12 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
JS创建Tag标签的方法详解
2017/06/09 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
2018/08/13 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
layui的select联动实现代码
2019/09/28 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
python 循环while和for in简单实例
2016/08/16 Python
Python正则捕获操作示例
2017/08/19 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
python不到50行代码完成了多张excel合并的实现示例
2020/05/28 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
如何利用python生成MD5并去重
2020/12/07 Python
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
运动会广播稿50字
2014/01/26 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
五一活动标语
2014/06/30 职场文书
看雷锋电影观后感
2015/06/10 职场文书
边城读书笔记
2015/06/29 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis