网站制作

本类阅读TOP10

·IIS 安装配置全攻略
·用VS.NET打开网上下载的.NET web项目出错的解决办法
·HTML 4.0 语言快速参考
·限制TextArea区的文字输入数量
·如何在网页上实现进度条
·Apache的配置步骤及测试
·谈谈Jesse James Garrett提到的Ajax
·html基础学习笔记(2)
·页面垂直居中的两种方法
·用asp遍历目录下文件的例子

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
XML口令文件描述

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

XML口令文件描述

      adduser.asp文件用来向XML文件中增加新的元素。作为一个羽翼丰满的应用程序,还需要建立编辑和删除功能,但是如果需要的话,这些能够手工完成,而增加新用户则只能用这个页面来完成。这是因为口令和salt都是在用户提供的口令的基础上用AspEncrypt生成的。adduser.asp中的大部分代码用来 操作XML文件并创建一个新元素,但是因为有其它文章专门解释如何用ASP处理XML(见Server Side XML in ASP),所以我在这里只涉及AspEncrypt代码:

'Create Hash of password chosen 
Randomize 
Salt = "" 
For i = 1 to 10 
    Salt = Salt & chr(int(Rnd * 26) + 65)  '65 is ASCII for "A"
Next 

' Calculate Hash of Password + Salt
Set CM = Server.CreateObject("Persits.CryptoManager") 
Set Context = CM.OpenContext("mycontainer", True) 
Set Hash = Context.CreateHash 
Hash.AddText Request("Password") & Salt 
HashValue = Hash.Value.Hex 
Set Hash = Nothing 
Set CM = Nothing

   首先,我们用Randomize生成一个任意salt ,用VBScript Rnd函数创建一个任意的10字符字符串。 然后,salt 把增加到提交给页面的口令中,并发送给CryptoHash 对象。然后,单程随机值被提取 为HashValue,然后将其存储在XML文件中。

   validateuser.asp 文档具有同样的功能。为了确定用户名/口令组合是否有效,页面首先要看在XML文件中是否存在用户名。如果没有,它就返回用户没有找到。否则,它就要将提交口令加提交用户salt 的随机值与为用户存储的加密口令相比较。以下代码执行这个测试:

Found = False
I = 0
While I < objectRootElement.childNodes.Length And Not Found
   If objectRootElement.childNodes(I).attributes _
                       .getNamedItem("name").nodeValue = username Then
   Found = True
   Else
   I = I + 1
   End If
Wend
   If Found Then
   Response.Write "User " & username & " Found"

   ' Calculate Hash of specified password + Salt from DB 
   HashValue = objRootElement.childNodes(i).attributes _
                             .getNamedItem("password").nodeValue
   Salt = objectRootElement.childNodes(i).attributes _
                           .getNamedItem("salt").nodeValue

   Set CM = Server.CreateObject("Persits.CryptoManager")
   Set Context = CM.OpenContext("mycontainer", True)
   Set Hash = Context.CreateHash Hash.AddText password & Salt

   HashValue2 = Hash.Value.Hex
   Set Hash = Nothing
   Set CM = Nothing

   If HashValue = HashValue2 Then
      Response.Write "User " & username & " Validated" 
   Else 
      Response.Write "User Password Invalid." 
   End If

   Else
      Response.Write "User " & username & " Not Found"
   End If

   Hashvalue用来在XML文件中存储经过加密的口令的值(正确的经过加密的口令)。Hashvalue2 是用提交的口令和数据库中的salt 进行计算的。如果它们匹配,用户就被确认。否则就提交一个无效口令。




相关文章

相关软件