当前位置: 首页 > 图文教程 > 网络编程 > ASP > 使用ASP加密算法加密你的数据(一)

ASP
asp分页(自己整理的2个分页程序)
ASP常用的系统配置函数
雨哲防采集策略之列表篇
雨哲浅谈关于防采集而不影响收录内容篇
asp数据库连接函数
ajax XMLHTTP Post Form时的表单乱码综合解决
ASP注入详细命令40条
用ASP实现MSSQL用户密码破解
ASP创建对象的两种方法比较
ASP字符串转换为整形、双精度型、布尔
ASP计算str2在str1中出现的次数
asp采集抓取网上房产信息的代码
ASP注册登陆实例代码
ASP中使用FileSystemObject时提高性能的方法
分享一个好东东,动态Include文件 (Dynamic File Includes)
解决 JScript 中使用日期类型数据时出现类型错误的问题
在ASP里面创建GUID
在JScript中使用缓存技术的实际代码
ASP javascript Application对象的Contents和StaticObjects做Cache的一些经验
海阳2006+功能中的潜水王

使用ASP加密算法加密你的数据(一)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 120 ::
收藏到网摘: n/a

      
  简介
    首先简单介绍一下有关加密的背景。由于美国禁止几种密码算法的对外出口的加密位数(例如SSL的40位加密限制),本文将介绍一种ASP可以使用的简单字符加密算法,而不是那些受限制的加密算法。其实,这里介绍的加密算法对于一般的运用来说已经足够解密人麻烦一阵子的了。它的加密基础是最简单的Vernum密码方法,我将在下一篇文章中介绍这种密码。
    它的基本原理是,需要有一个需要加密的明文和一个随机生成的解密钥匙文件。然后使用这两个文件组合起来生成密文。
  (明文) 组合 (密钥) = 加密后的密文
    所以本文介绍的是生成密钥的代码。我们假设我们生成的密钥为512位长的密钥,它已经足够来加密一个文本字符了。代码如下:
  KeyGeN.asp文件
  <%
  '******************************
  ' KeyGeN.asp
  '******************************
  Const g_KeyLocation = "C:\key.txt"
  Const g_KeyLen = 512
  
  On Error Resume Next
  
  Call WriteKeyToFile(KeyGeN(g_KeyLen),g_KeyLocation)
  
  if Err <> 0 Then
  Response.Write "ERROR GENERATING KEY." & "<P>"
  Response.Write Err.Number & "<BR>"
  Response.Write Err.Description & "<BR>"
  Else
  Response.Write "KEY SUCCESSFULLY GENERATED."
  End If
  
  Sub WriteKeyToFile(MyKeyString,strFileName)
  Dim keyFile, fso
  set fso = Server.CreateObject("scripting.FileSystemObject")
  set keyFile = fso.CreateTextFile(strFileName, true)
  keyFile.WriteLine(MyKeyString)
  keyFile.Close
  End Sub
  
  Function KeyGeN(iKeyLength)
  Dim k, iCount, strMyKey
  lowerbound = 35
  upperbound = 96
  Randomize ' Initialize random-number generator.
  for I = 1 to iKeyLength
  s = 255
  k = Int(((upperbound - lowerbound) + 1) * Rnd + lowerbound)
  strMyKey = strMyKey & Chr(k) & ""
  next
  KeyGeN = strMyKey
  End Function
  
  %>
    在IIS下运行上面的KeyGeN.asp页面。你只需要如此做一次,他将把密钥写入文件c:\key.txt中 (如果你愿意的话,你也可以把这个文件放到另外一个更加安全的地方).然后你可以打开这个key.txt文件,它将包含512个ASCII码在35到96之间的字符.并且由于是随机生成的,所以每个人的私人密钥文件key.txt将是不一样的,下面是一个例子密钥文件:
  
  IY/;$>=3)?^-+7M32#Q]VOII.Q=OFMC`:P7_B;<R/8U)XFHC<SR_E$.DLG'=I+@5%*+OP:F_=';'NSY`-^S.`AA=BJ3M0.WF#T5LGK(=/<:+C2K/^7AI$;PU'OME2+T8ND?W$C(J\,;631'M-LD5F%%1TF_&K2A-D-54[2P,#'*JU%6`0RF3CMF0(#T07U'FZ=>#,+.AW_/+']DIB;2DTIA57TT&-)O'/*F'M>H.XH5W^0Y*=71+5*^`^PKJ(=E/X#7A:?,S>R&T;+B#<:-*\@)X9F`_`%QA3Z95.?_T#1,$2#FWW5PBH^*<])A(S0@AVD8C^Q0R^T1D?(1+,YE71X+.*+U$:3XO^Q].KG&0N0];[LJ<OZ6IN?7N4<GTL?(M'4S8+3JMK5]HC%^1^+K;\$WBXPA?F&5^E\D$7%*O/U[1/?8(5:1OVWV*1Z-%`:K&V?X1,1KURD@3W0^D)<OG40?(VJ4EWL5A5M<$A);CQ36R9I]*U#Q%1<Y\&SA%#1<V
  
    下面再仔细分析一下上面的程序,我们发现其中的lowerbound和upperbound的数值其实就是你想使用来加密的ASCII字符范围。后面一篇文章中将介绍如何使用这个密钥来加密和解密一个字符串