求解开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 相关文章推荐
Add a Formatted Table to a Word Document
Jun 15 Javascript
JavaScript 数组详解
Oct 10 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
Sep 17 Javascript
jquery横向纵向鼠标滚轮全屏切换
Feb 27 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
Node.js使用Express.Router的方法
Nov 14 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
Jun 11 Javascript
vue路由前进后退动画效果的实现代码
Dec 10 Javascript
微信小程序实现分享商品海报功能
Sep 30 Javascript
如何在JavaScript中创建具有多个空格的字符串?
Feb 23 Javascript
javascript使用正则表达式实现注册登入校验
Sep 23 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
Oct 28 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
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
Php Mssql操作简单封装支持存储过程
2009/12/11 PHP
深入PHP变量存储的详解
2013/06/13 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
JavaScript函数详解
2015/02/27 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
2015/09/27 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
详解如何运行vue项目
2019/04/15 Javascript
python返回昨天日期的方法
2015/05/13 Python
Python过滤列表用法实例分析
2016/04/29 Python
Python 常用 PEP8 编码规范详解
2017/01/22 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
详解flask入门模板引擎
2018/07/18 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
夜大自我鉴定
2013/10/31 职场文书
人事文员岗位职责
2014/02/16 职场文书
2014年国培研修感言
2014/03/09 职场文书
指导教师评语
2014/04/26 职场文书
妇女工作先进事迹
2014/08/17 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL
Java异常体系非正常停止和分类
2022/06/14 Java/Android