请教有关MD5加密的问题?(小问题)

lcht1 2003-10-17 09:53:09
我的登陆模块使用了md5加密方式,但出现了一些问题,

我在注册页面使用md5将密码加密后存入数据库,但我在登陆页面使用同样的函数,但结果确和数据库中保存的不同,为何?

小弟初学,请多多关照?
...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
活靶子哥哥 2003-10-23
  • 打赏
  • 举报
回复
登陆时候Response.write一下 看值和数据库内是否不同
xiongliang2003 2003-10-22
  • 打赏
  • 举报
回复
MARK
lcht1 2003-10-17
  • 打赏
  • 举报
回复
这是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
hgknight 2003-10-17
  • 打赏
  • 举报
回复
贴出你的代码
webdiyer 2003-10-17
  • 打赏
  • 举报
回复
数据库中存密码的字段类型有多长?用FormsAuthentication.HashPasswordForStoringInConfigFile(password,"sha1")方法加密后生成的字符串长度是 40 位,而用FormsAuthentication.HashPasswordForStoringInConfigFile(password,"md5")方法生的是 32 位。
jxf_yx 2003-10-17
  • 打赏
  • 举报
回复
可能你传进去的字符有“”,所以出了问题。
你调试下2次传进去的 字符
hgknight 2003-10-17
  • 打赏
  • 举报
回复
跟踪一下,看看取出的数据对不对

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧