求解开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 相关文章推荐
用 JavaScript 迁移目录
Dec 18 Javascript
使用jquery获取网页中图片高度的两种方法
Sep 26 Javascript
js修改原型的属性使用介绍
Jan 26 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
Apr 12 Javascript
js检测iframe是否加载完成的方法
Nov 26 Javascript
jQuery获取DOM节点实例分析(2种方式)
Dec 15 Javascript
Bootstrap每天必学之日期控制
Mar 07 Javascript
js滚动条平滑移动示例代码
Mar 29 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
Dec 08 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
Jan 07 Javascript
使用FormData实现上传多个文件
Dec 04 Javascript
angular中如何绑定iframe中src的方法
Feb 01 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
PHP学习之字符串比较和查找
2011/04/17 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
微信自定义分享php代码分析
2016/11/24 PHP
php实现批量上传数据到数据库(.csv格式)的案例
2017/06/18 PHP
ThinkPHP 5.x远程命令执行漏洞复现
2019/09/23 PHP
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
jquery cookie插件代码类
2009/05/26 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
javascript每日必学之封装
2016/02/23 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
解决Nuxt使用axios跨域问题
2020/07/06 Javascript
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
python移位运算的实现
2019/07/15 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
Python3+selenium配置常见报错解决方案
2020/08/28 Python
python实现图片素描效果
2020/09/26 Python
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
在什么时候需要使用"常引用"
2015/12/31 面试题
监理员的岗位职责
2013/11/13 职场文书
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
个人承诺书
2014/03/26 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
先进个人申报材料
2014/12/30 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
Java实现学生管理系统(IO版)
2022/02/24 Java/Android