首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
ASP | ASP.NET | JSP | PHP | AJAX | XML | Java script | HTML/CSS | 服务器类
各大城市软件开发培训、软件人才免费咨询热线:400-700-5807
 您现在的位置: 中国IT实验室 >> WEB开发 >> asp学习教程 >> 正文
用ASP写个简单的加密和解密的类实例
ChinaItLab  2004-12-21  保存本文    收藏本站


  用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 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" end sub
  '********************************************
  '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
  end if
  
  '*************************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 & tempString next
  '*************************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
  end if
  
  '******************************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=left(right(paramString,4),mod4String)
  returnValue = returnValue & tempString
  end if
  Decode=returnValue
  end if
  end if
  end function
  '********************************************
  'end将Base64编码字符串转换成Ansi编码的字符串
  '********************************************
  
  end class
中国IT教育热线咨询
相关文章
使用AJAX技术构建更优秀的Web应用程序
ASP应用程序设计的Web状态管理分析
Ajax驱动的Web站点
如何使用Ajax开发Web应用程序
XMLHttpRequest和AJAX虎视Web应用开发
最新文章
·PHP正则表达式从url中取得域名
·php设计模式介绍之迭代器模式
·简单学习php遇到的主要问题
·asp根据表单自动生成sql语句的函
·雅虎选项卡特效
 文章评论

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
ASP.NET ASP PHP JSP
·extjs ComboBox联动下拉菜单示例08-01
·漫谈.Net开发关于命名空间和目录划分07-31
·在Silverlight应用程序中操作Cookie07-28
·带附加条件的NewID()用法(downmoon)07-28
·对自定义路由进行单元测试07-28
·javascript实现yield07-28
·在ASP.NET中使用Google Maps07-28
·Sql Server2005 实现Oracle10g的hash表分区功07-28
·asp.net get set用法07-26
·Asp.net 控件开发—数据回传07-26
·接口vs. 的实体类07-26
·php设计模式介绍之迭代器模式08-02
·简单学习php遇到的主要问题08-02
·asp根据表单自动生成sql语句的函数08-02
·教你优化你的ASP程序03-07
·asp去除HTML标记的三个实用函数03-07
·ASP添加验证码的解决方法03-07
·ASP通用文章分页函数:非记录集分页03-07
·ASP教程基础:十天学会ASP第三天03-07
·ASP教程基础:十天学会ASP第二天03-07
·ASP教程基础:十天学会ASP第一天03-07
·能够生成google xml地图的asp源码03-06
·Linux系统下让PHP提高性能的工具APC05-06
·一个完整、安全的PHP用户登录系统11-14
·Apache+PHP+MySQL建立数据库驱动的动态网站08-24
·用SSH与PHP相连接 确保数据传输的安全性08-23
·PHP5手动最简安装方法08-03
·PHP程序加速探索之服务器负载测试07-11
·完全讲解PHP+MySQL的分页显示示例分析05-30
·用Suhosin加强PHP脚本语言安全性05-26
·初学入门 PHP 和 MySQL05-17
·传奇的诞生 PHP三位创始人简介05-10
·大型系统上PHP令人不爽的九大原因05-10
·ASP.NET和PHP、JSP究竟学哪个?07-30
·JAVA (Jsp)利用Google的Translate开发API07-29
·由Servlet获得FacesContext及ManagedBeans07-24
·用JOTM向Servlet中添加事务07-18
·用servlet生成验证码07-16
·JSP/Servlet伪静态网页实现07-08
·JSP和Servlet的关系浅谈06-15
·妙用异步Servlet扩展AJAX应用程序06-11
·servlet生成验证码图片06-02
·java.servlet.Filter的应用05-30
·Java程序员必看--扩展鼠标右键菜单功能05-13
  培训中心
人才交流中心 技术交流中心
  ITLab技术交流平台: