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

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


  ret = ret & Base64EncMap( ((second * 4) AND 60) + ((third \ 64) AND 3 ) )
  ret = ret & Base64EncMap( third AND 63)
  ndx = ndx + 3
  loop
  if by3 < len(plain) then
  first = asc(mid(plain, ndx+0, 1))
  ret = ret & Base64EncMap( (first \ 4) AND 63 )
  if (len(plain) MOD 3 ) = 2 then
  second = asc(mid(plain, ndx+1, 1))
  ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )
  ret = ret & Base64EncMap( ((second * 4) AND 60) )
  else
  ret = ret & Base64EncMap( (first * 16) AND 48)
  ret = ret '& "="
  end if
  ret = ret '& "="
  end if
  base64Encode = ret
  END FUNCTION

3)重新改写要保护的asp文件

  改写原来的asp文件,在文件中增加UnEncode 和base64Decode函数,全部代码如下:

以下是引用片段:
  Dim Hu,Hu2
  '拷贝“欲保护asp代码”的密文 将之存放到Hu变量中
  Hu=”c2V0IHJzPXNlcnZlci5jcmVhdGVvYmplY3Qo12Fkb2RiLnJlY29yZHNldOMpICAgICDuc3FsPeNzZWxlY3QgKiBmcm9tIGdxICB3aGVyZSB4cz0xIG9yZGVyIGJ5IGRhdGUgYXNj1yAgICAgsnJzLm9wZW4gc3FsLGNvbm4sMSwxICAgICDuaWYgcnMuZW9mIGFuZCBycy5ib2YgdGhlbiDucmVzcG9uc2Uud3JpdGUTvSD7INAg5iAgILUgvyAFILITsmVsc2UgsiAgICAgUmVzcG9uc2UuV3JpdGUg1zxBIEhSRUY9bmV3MC5hc3A/bGJpZD0TJnJlcXVlc3Qo12xiaWQTKSAmIOM+PC9BPuPuZW5kIGlmICAgIL5zZXQgcnM9bm90aGluZyAgICAgICAgsmNvbm4uY2xvc2UgICAgICDuc2V0IGNvbm49bm90aGluZyAgIL4”
  Hu2= base64Decode(hu) '还原要保护的ASP代码
  execute(UnEncode(Hu2)) '还原单引号、回车换行,并执行原代码
  ’解密函数base64Decode
  FUNCTION base64Decode(scrambled)
  if len(scrambled) = 0 then
  base64Decode = ""
  exit function
  end if
  dim realLen
  realLen = len(scrambled)
  do while mid(scrambled, realLen, 1) = "="
  realLen = realLen - 1
  loop
  dim ret, ndx, by4, first, second, third, fourth
  ret = ""
  by4 = (realLen \ 4) * 4
  ndx = 1
  do while ndx <= by4
  first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
  second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
  third = Base64DecMap(asc(mid(scrambled, ndx+2, 1)))
  fourth = Base64DecMap(asc(mid(scrambled, ndx+3, 1)))
  ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3))
  ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15))
  ret = ret & chr( ((third * 64) AND 255) + (fourth AND 63))
  ndx = ndx + 4
  loop
  if ndx < realLen then
  first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
  second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
  ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3))
  if realLen MOD 4 = 3 then
  third = Base64DecMap(asc(mid(scrambled,ndx+2,1)))

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

相关文章

文章评论

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