|
我在注册页面使用md5将密码加密后存入数据库,但我在登陆页面使用同样的函数,但结果确和数据库中保存的不同,为何? 小弟初学,请多多关照? |
|
|
|
贴出你的代码
|
|
|
这是Users类中的几个函数,包括md5,创建,登陆,分别在不同页面调用,请各位大虾给指出错误,谢谢了
Public Function User_Passmd5(ByVal PassWord As String, ByVal passwordformate As String) As String'md5函数 If passwordformate = "sha1" Then User_Passmd5 = FormsAuthentication.HashPasswordForStoringInConfigFile(PassWord, "sha1") ElseIf passwordformate = "md5" Then User_Passmd5 = FormsAuthentication.HashPasswordForStoringInConfigFile(PassWord, "md5") Else User_Passmd5 = PassWord End If End Function Public Function User_Create(ByVal UserName As String, _ ByVal UserNicheng As String, _ ByVal UserEmail As String, _ ByVal UserPass As String, _ ByVal UserAddress As String, _ ByVal UserQQ As String, _ ByVal UserDEL1 As String, _ ByVal UserDEL2 As String, _ ByVal UserWork As String, _ ByVal UserCity As String) As Boolean '创建新用户,追加至数据库 Dim UserPassWord As String UserPassWord = User_Passmd5(UserPass, "md5") Dim strSQL As String strSQL = "INSERT INTO Info_user (UserName,UserNicheng,UserEmail,UserPassword,userAddress,UserQQ,UserDEL1,UserDEL2,UserWork,UserCity) " strSQL += " Select '" + UserName + "','" + UserNicheng + "','" + UserEmail + "','" + UserPassWord + "','" + UserAddress + "','" + UserQQ + "','" + UserDEL1 + "','" + UserDEL2 + "','" + UserWork + "','" + UserCity + "'" Try myConnection.Open() Dim myCommand As New SqlCommand(strSQL, myConnection) myCommand.ExecuteNonQuery() myConnection.Close() myConnection = Nothing Return True Catch ex As Exception Return False End Try End Function Function User_Login(ByVal Name As String, ByVal UserPass As String) As Boolean'登陆验证 Dim UserPassWord As String UserPassWord = User_Passmd5(UserPass, "md5") Dim strSQL As String strSQL = "Select * from Info_User" strSQL += " where UserName ='" + Name + "'" strSQL += " AND " strSQL += " UserPassword ='" + UserPassWord + "'" myConnection.Open() Dim myCommand As New SqlCommand(strSQL, myConnection) Dim myReader As SqlDataReader myReader = myCommand.ExecuteReader If myReader.HasRows Then Return True Else Return False End If myConnection.Close() myConnection = Nothing End Function Sub User_Update(ByVal id As Integer) End Sub |
|
|
跟踪一下,看看取出的数据对不对
|
|
|
可能你传进去的字符有“”,所以出了问题。
你调试下2次传进去的 字符 |
|
|
数据库中存密码的字段类型有多长?用FormsAuthentication.HashPasswordForStoringInConfigFile(password,"sha1")方法加密后生成的字符串长度是 40 位,而用FormsAuthentication.HashPasswordForStoringInConfigFile(password,"md5")方法生的是 32 位。
|
|
|
MARK
|
|
|
登陆时候Response.write一下 看值和数据库内是否不同
|
|