求解开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 相关文章推荐
JQuery 解析多维的Json数据格式
Nov 02 Javascript
JQuery加载图片自适应固定大小的DIV
Sep 12 Javascript
js有序数组的连接问题
Oct 01 Javascript
JavaScript中实现map功能代码分享
Jun 11 Javascript
基于Jquery和html5的7款个性化地图插件
Nov 17 Javascript
JavaScript中获取纯正的undefined的方法
Mar 06 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
Nov 30 Javascript
vue安装遇到的5个报错及解决方法
Jun 12 Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 Javascript
基于小程序请求接口wx.request封装的类axios请求
Jul 02 Javascript
关于vue的列表图片选中打钩操作
Sep 09 Javascript
React Fragment介绍与使用详解
Nov 11 Javascript
用正则获取指定路径文件的名称
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
建立动态的WML站点(三)
2006/10/09 PHP
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
Python面向对象类的继承实例详解
2018/06/27 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
pytorch查看通道数 维数 尺寸大小方式
2020/05/26 Python
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
Unix如何在一行中运行多个命令
2015/05/29 面试题
思想汇报范文
2013/11/04 职场文书
三好学生自我鉴定
2013/12/17 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python