求解开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 相关文章推荐
js实现杯子倒水问题自动求解程序
Mar 25 Javascript
jquery ajax修改全局变量示例代码
Nov 08 Javascript
只需五句话搞定JavaScript作用域(经典)
Jul 26 Javascript
js实现点击图片自动提交action的简单方法
Oct 16 Javascript
利用JavaScript实现拖拽改变元素大小
Dec 14 Javascript
ajax图片上传,图片异步上传,更新实例
Dec 30 Javascript
vue.js之vue-cli脚手架的搭建详解
May 05 Javascript
element ui里dialog关闭后清除验证条件方法
Feb 26 Javascript
javascript中的event loop事件循环详解
Dec 14 Javascript
vue使用Font Awesome的方法步骤
Feb 26 Javascript
layui lay-verify form表单自定义验证规则详解
Sep 18 Javascript
如何使用three.js 制作一个三维的推箱子游戏
Jul 29 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 CURL 多线程操作代码实例
2015/05/13 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
2019/12/04 PHP
我的javascript 函数链之演变
2011/04/07 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
python 默认参数问题的陷阱
2016/02/29 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
电子商务专业学生的自我鉴定
2013/11/28 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
管理标语大全
2014/06/24 职场文书
暑期培训心得体会
2014/09/02 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
评先进个人材料
2014/12/29 职场文书
客房领班岗位职责
2015/02/11 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书