• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

用ASP加密算法“保护”你的数据

发布: 2007-9-07 19:42 | 作者: admin | 来源: eNet论坛 | 查看: 85次 | 进入软件测试论坛讨论

领测软件测试网   首先简单介绍一下有关加密的背景。由于美国禁止几种密码算法的对外出口的加密位数(例如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." amp; "<P>"

  Response.Write Err.Number amp; "<BR>"

  Response.Write Err.Description amp; "<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 amp; Chr(k) amp; ""

  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;#,+.AW_/+']DIB;2DTIA57TTamp;-)O'/*F'M>H.XH5W^0Y*=71+5*^`^PKJ(=E/X#7A:?,S>Ramp;T;+B#<:-*\@)X9F`_`%QA3Z95.?_T#1,$2#FWW5PBH^*<])A(S0@AVD8C^Q0R^T1D?(1+,YE71X+.*+U$:3XO^Q].KGamp;0N0];[LJXPA?Famp;5^E\D$7%*O/U[1/?8(5:1OVWV*1Z-%`:Kamp;V?X1,1KURD@3W0^D)><$A);CQ36R9I]*U#Q%1

  下面再仔细分析一下上面的程序,我们发现其中的lowerbound和upperbound的数值其实就是你想使用来加密的ASCII字符范围。后面一篇文章中将介绍如何使用这个密钥来加密和解密一个字符串.
[1] [2]下一页

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网