XML口令文件描述 (转)

本文介绍了一种使用ASP和XML实现用户口令验证的方法。通过adduser.asp文件向XML文件中添加新用户及其加密后的口令,利用vbscript生成随机salt并结合CryptoManager对象进行口令加密。validateuser.asp文件负责验证用户输入的口令是否正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XML口令文件描述 (转)[@more@]

 

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 进行计算的。如果它们匹配,用户就被确认。否则就提交一个无效口令。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-988492/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-988492/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值