动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   Asp → 阅读文章

 用Asp写个加密和解密的类

作者来源:网易学院 
阅读 1516 人次 , 2006-2-15 14:16:00 

  用asp写个简单的加密和解密的类,在这个类中简单的实现了一个加密和解密。目的是和大家分享一下。这个类的破解非常简单。看看我的注释就知道是怎么回事了。下次编写一个java的加密和解密的类。

  class Base64Class

  rem Const

  dim sBASE_64_CHARACTERS转化码

  dim lenString 计算字符串的长度

  dim iCount 计数器

  dim returnValue 返回值

  dim tempChar缓存字符

  dim tempString缓存字符串

  dim paramString 参数字符串

  dim temHex缓存缓存十六进制

  dim tempLow缓存低位

  dim tempHigh缓存高位

  dim mod3String

  dim mod4String

  dim tempBinary

  dim tempByteOne

  dim tempByteTwo

  dim tempByteThree

  dim tempByteFour

  dim tempSaveBitsOne

  dim tempSaveBitsTwo

  ********************************************

  begin初始化类

  ********************************************

  private sub Class_Initialize()

  sBASE_64_CHARACTERS=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz09+/endsub

  ********************************************

  end初始化类

  ********************************************

  ********************************************

  begin销毁类

  ********************************************

  Private Sub Class_Terminate()

  sBASE_64_CHARACTERS= end sub

  ********************************************

  end销毁类

  ********************************************

  ********************************************

  begin将Ansi编码的字符串进行Base64编码

  ********************************************

  public function Encode(paramString)

  tempString=

  returnValue=

  lenString=len(paramString)

  if lenString<1 then

  Encode=returnValue

  else

  mod3String=lenString mod 3

  补足位数是为了便于计算

  if mod3String>0 then

  lenString=lenString+3-mod3String

  lenString=lenString-3



*************************begin

  for iCount=1 to lenString step 3

  tempBinary = Mid(paramString, iCount, 3)

  response.write tempBinary

  tempByteOne= Asc(Mid(tempBinary, 1, 1)): tempSaveBitsOne=tempByteOne And 3

  tempByteTwo = Asc(Mid(tempBinary, 2, 1)): tempSaveBitsTwo=tempByteTwo And 15

  tempChar = Asc(Mid(tempBinary, 3, 1))

  tempByteOne = Mid(sBASE_64_CHARACTERS, ((tempByteOne And 252) 4)+ 1, 1)

  tempByteTwo = Mid(sBASE_64_CHARACTERS, (((tempByteTwo And 240)16) Or (tempSaveBitsOne * 16) And &HFF) + 1, 1)

  tempByteThree = Mid(sBASE_64_CHARACTERS, (((tempChar And 192)64) Or (tempSaveBitsTwo * 4) And &HFF) + 1, 1)

  tempByteFour = Mid(sBASE_64_CHARACTERS, (tempChar And 63) +1,1)

  tempString = tempByteOne & tempByteTwo &tempByteThree& tempByteFour returnValue=returnValue &tempStringnext

  *************************end

  *************************begin处理最后剩余的几个字符

  if mod3String>0 then

  tempBinary = Mid(paramString, iCount, mod3String)

  if mod3String=1 then

  tempString = tempBinary & Chr(64) & Chr(64) &Chr(64)用@号补足位数

  else tempString = tempBinary & Chr(64) &Chr(64)用@号补足位数

  end if

  returnValue=returnValue & tempString

  end if

  *************************end处理最后剩余的几个字符

  Encode=returnValue end if end function

  ********************************************

  end将Ansi编码的字符串进行Base64编码

  ********************************************

  ********************************************

  end将Base64编码字符串转换成Ansi编码的字符串

  ********************************************

  public function Decode(paramString)

  tempString=

  returnValue=

  lenString=len(paramString)

  if lenString<1 then

  Decode=returnValue

  else

  mod4String=lenString mod 4

  if mod4String >0 then 字符串长度应当是4的倍数

  Decode=returnValue

  else begin判断是不是@号

  if Mid(paramString, lenString-1, 1) = @ then

  mod4String=2

  end if

  if Mid(paramString, lenString-2, 1) = @ then

  mod4String=1

  end if

  end判断是不是@号

  if mod4String>0 then

  lenString=lenString-4
 

  ******************************begin

  for iCount=1 to lenString step 4

  tempString = Mid(paramString, iCount, 4)

  tempByteOne = InStr(sBASE_64_CHARACTERS, Mid(tempString, 1, 1))-1

  tempByteTwo = InStr(sBASE_64_CHARACTERS, Mid(tempString, 2, 1))-1

  tempByteThree = InStr(sBASE_64_CHARACTERS, Mid(tempString, 3,1))- 1

  tempByteFour = InStr(sBASE_64_CHARACTERS, Mid(tempString, 4, 1))-1

  tempByteOne = Chr(((tempByteTwo And 48) 16) Or (tempByteOne *4)And &HFF) tempByteTwo = & Chr(((tempByteThree And 60)4) Or (tempByteTwo * 16) And &HFF)

  tempByteThree = Chr((((tempByteThree And 3) * 64) And &HFF)Or(tempByteFour And 63))

  tempString=tempByteOne & tempByteTwo & tempByteThree

  returnValue=returnValue & tempString

  next

  ******************************end

  处理最后剩余的几个字符

  if mod4String > 0 then

  tempString=center(center(paramString,4),mod4String)

  returnValue = returnValue & tempString

  end if

  Decode=returnValue

  end if

  end if

  end function

  ********************************************

  end将Base64编码字符串转换成Ansi编码的字符串

  ********************************************

  作者:CSDN pxjianke



  
 本文Tagsmd5  加密  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:ASP.NET 的状态管理
· 下一篇:网页制作 JSP与ASP 的比较
· 简单快捷实现ASP在线发邮件
· 如何把ASP编写成DLL(2)
· 网络精英计数器源程序
· 磁盘ID在ASP源码防拷贝中的应用
· 来自重粒子的C#程序


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077