下面是注册页面写入数据库的处理部分
Oldpassword= md5(request.form(“password1”))
…..读取数据库部分省略
A=left(Oldpassword,beginnumber-1) ‘截取客户端得到的密码原始md5值未被截取的前端部分
B=right(Oldpassword,16-(beginnumber+number-1)) ‘截取客户端得到的密码原始md5值未被截取的后端部分
Password1=A&get_key(number)&B ‘截取部分调用随机函数随机生成一组数并且与前面截取的前端及后端重新组合在一起
Rs(“password2”)=password1 ’将组合后的密码存入数据库
这样以来你得到的就是一组16位没有人知道的是什么的变形MD5了,及时得到密文也无法正确破解
那么保存成功,接下来如何读取和验证呢?同样给出一个简单的例子:
funcition pass_left(pass) ‘首先定义截取md5密码左端部分的函数
pass=left(pass,beginnumber-1)
Changepass=pass
End function
funcition pass_right(pass)’定义截取md5密码右端的部分
pass=left(pass, 16-(beginnumber+number-1))
Changepass=pass
End function
Password=md5(request.form(“password”)) ‘获取客户端密码
…读取数据库部分
…..
If pass_left(password)<>pass_left(rs(“pasword2”)) or pass_right(password)<>pass_right(rs(“password2”)) then ‘对随机截取部分外的部分进行比对判断
Response.write “密码错误”
Else
Response.write “登陆成功”
End if
到这里就完成了对md5的随机加密增强。从此md5的安全性又上了一层台阶!
经过这样混淆加密的密文复杂度和可能种类多了非常多,而且也容易欺骗入侵者,即使他们查询到了。也登陆不进去,思维一定很混乱或许会认为这是一个虚假的数据库,或者是一个蜜罐,从而放弃攻击和猜解。
这里只是提供一个思路,相信大家可以相处更多种变换的花样。如果大家有更好的办法希望不吝告知,共同探讨下。程序写的简陋如有意见和建议可以到论坛提出讨论,我的论坛ID是陆羽。论坛地址是:http://www.ixpub.net/forum-214-1.html