以下代码怎么修改才能增加MD5加密功能?

王朝知道·作者佚名  2009-06-03
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

以下代码怎么修改才能增加MD5加密功能?请高手赐教!!

<%

If Request.QueryString("style")="chk" Then

user =Replace(Trim(Request.Form("user")),"'","''")

pass =Replace(Trim(Request.Form("pass")),"'","''")

new_pass=Replace(Trim(Request.Form("new_pass")),"'","''")

sql="select * from admin where admin='"&user&"' and password='"&pass&"' and admin='"&session("admin")&"'"

set rs=conn.execute(sql)

if rs.Bof Then

Response.Write("<script language=javascript>alert('密码错误!!!');history.back();</script>")

Response.End

End If

sql="update admin set password='"&new_pass&"' where admin='"&session("admin")&"'"

conn.execute(sql)

Response.Write("<script language=javascript>alert('更改密码成功!!!');location.replace('main.asp')</script>")

connclose()

End If

%>

參考答案:

md5.asp的代码略掉了

把你的代码改为:

<!--#include file="md5.asp"-->

<%

……

pass =md5(Replace(Trim(Request.Form("pass")),"'","''"))

new_pass=md5(Replace(Trim(Request.Form("new_pass")),"'","''"))

……

ps1:用了md5,数据库中存的就是md5的密文了,所以你之间数据库中存的所有密码都换成密文。

ps2:Replace(Trim(Request.Form("user")),"'","''"),感觉怪怪的,为什么不在Trim做Replace呢?已经做了,为什么又要Replace?

补充:修改密码时提示密码错误,是因为你现在的数据库中的密码用的是明文,而我修改后的密码,读的要是密文才行。

这其中有个原因,用到md5加密,是要把数据库中的敏感信息转成密文保存,这样即使有人得到了数据库,也无法查看敏感信息。也正是因为md5的不可逆性质,在验证的时候无法从数据库中取得密码的明文,因此要取得表单数据,将其加密成密文,然后与数据库中的密文进行比较,以此方法验证。

pass =md5(Replace(Trim(Request.Form("pass")),"'","''"))是将你的表单转成密文。

sql="select * from admin where admin='"&user&"' and password='"&pass&"' and admin='"&session("admin")&"'"

是从数据库中取得密码(密文),与已经成为密文的pass进行比较。

你原来的数据库里面应该存的是明文密码,这样就成了明文与密文的比较。当然提示密码错误。

想办法把数据库中的密码全部改成密文吧

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航