网站安全之ASP程序加密解密方法全面解析

时间:2007-10-06 23:41:21   来源:  作者:  编辑:海


  <body>
  <%= diaoyong.html_combo("gq")%>
  <br>
  </body>
  </html>


  你看,现在Asp文件中的内容只是组件的调用(与以前完全不同),别人即使得到该文件,也无法编辑修改源代码,因为代码都被封装在VB组件中了,对于组件中的代码,外人是无法看到、也不能反编译的!

  3、自己编写加密程序

  组件加密方法虽然不可破解,但是要求你熟悉VB编程,需要把ASP代码改写成VB组件,工作量很大,所以建议大家自己编程来保护asp代码,其基本思路是:写一个加密函数base64Encode和解密函数base64Decode,先用加密函数处理<要保护的asp代码>,得到对应的密文hu;然后再用execute(base64Decode(hu))替换<欲保护的asp代码>。

  例如我们要保护上面那段asp代码,可以这样操作:

  (1)用WORD处理<要保护的ASP代码>

  将<要保护的ASP代码>拷到WORD中;在WORD中,把代码里的段落标记(回车换行)全部替换成“水”这个汉字,方法是:点击“编辑”/替换,光标移到“查找内容”栏,点“高级”/特殊字符,选择“段落标记”;光标移到“替换为”栏,输入“水”,最后点“全部替换”。同法,把代码中的单引号也全部替换成“加”这个汉字。

  (2)编写、运行加密程序

  在FrontPage中编写加密程序,该程序中有初始化函数initCodecs、加密函数base64Encode(代码如下),把WORD处理后的代码,copy粘贴在inp = ""这句中,最后以test1.asp名存盘;在IE中输入http://127.0.0.1/test1.asp本地运行该文件;屏幕上会显示一大段乱码(例如c2V0IHJzPXNlcnZlci5jcmVhd...),这就是《要保护的asp代码》对应的密文!

以下是引用片段:
  OPTION EXPLICIT
  const BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
  dim newline
  dim Base64EncMap(63)
  dim Base64DecMap(127)
  dim inp,hu,encode
  call initCodecs '初始化
  inp = "<WORD处理后的asp代码>" '将要保护的asp代码用WORD处理,然后填在此处
  hu= base64Encode(inp) '调用函数base64Encode进行加密,得到密文hu
  Response.Write(hu) '显示密文
  PUBLIC SUB initCodecs() '初始化函数initCodecs
  newline = "<P>" & chr(13) & chr(10)
  dim max, idx
  max = len(BASE_64_MAP_INIT)
  for idx = 0 to max - 1
  Base64EncMap(idx) = mid(BASE_64_MAP_INIT, idx + 1, 1)
  next
  for idx = 0 to max - 1
  Base64DecMap(ASC(Base64EncMap(idx))) = idx
  next
  END SUB
  PUBLIC FUNCTION base64Encode(plain) '加密函数base64Encode
  if len(plain) = 0 then
  base64Encode = ""
  exit function
  end if
  dim ret, ndx, by3, first, second, third
  by3 = (len(plain) \ 3) * 3
  ndx = 1
  do while ndx <= by3
  first = asc(mid(plain, ndx+0, 1))
  second = asc(mid(plain, ndx+1, 1))
  third = asc(mid(plain, ndx+2, 1))
  ret = ret & Base64EncMap( (first \ 4) AND 63 )
  ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )

关键字:网站安全,加密解密,方法

相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面