数据库|mysql教程
密码,MD5加密,用户,账号
数据库-mysql教程
使用MD5鉴别是否合法用户
既然用户密码是按照MD5加密以后保存在数据库中的,我们知道,MD5是单次加密算法,所以,不可能将加密以后的信息转为明文,也就是说,已经没有办法知道。这就出现一个问题,如果用户使用账号、密码登录,怎么知道用户提供的密码是否准确呢?
这就不得不提到我们前文说到的MD5的特征,我们知道,任意一段明文数据,经过加密以后,其结果必须永远是不变的,也就是说,如果需要验证用户密码是否正确,只需要将用户当前提供的密码使用MD5加密,然后和数据库中保存的密码字段比较就可以了。以下代码就可以实现这个功能:
Sub Login(sender as Object, e as EventArgs)
‘1. 建立数据库连接
Const strConnString as String = “connection string”
Dim objConn as New SqlConnection(strConnString)
‘2. 建立Command对象
Dim strSQL as String = “SELECT COUNT(*) FROM UserAccount ” & _
“WHERE Username=@Username AND Password=@Password”
Dim objCmd as New SqlCommand(strSQL, objConn)
‘3. SQL参数
Dim paramUsername as SqlParameter
paramUsername = New SqlParameter(“@Username”, SqlDbType.VarChar, 25)
paramUsername.Value = txtUsername.Text
objCmd.Parameters.Add(paramUsername)
‘加密密码信息
Dim md5Hasher as New MD5CryptoServiceProvider()
Dim hashedDataBytes as Byte()
Dim encoder as New UTF8Encoding()
hashedDataBytes = puteHash(encoder.GetBytes(txtPwd.Text))
Dim paramPwd as SqlParameter
paramPwd = New SqlParameter(“@Password”, SqlDbType.Binary, 16)
paramPwd.Value = hashedDataBytes
objCmd.Parameters.Add(paramPwd)
objConn.Open()
Dim iResults as Integer = objCmd.ExecuteScalar()
objConn.Close()
If iResults = 1 then
‘正确
Else
‘错误
End If
End Sub
高仿qq列表模块1.45源码,ubuntu不能重启网络,自制迷你小爬虫,php表单求和,没落seolzw
Login
用户账号:
安卓手机软件源码,vscode断点没用,ubuntu画面卡死了,tomcat 优雅关闭,sqlite用python,html 甘特图插件,前端框架后端模板引擎,樟树中爬虫,php 微框架,百度 SEO查询,贸易企业网站源码,as3 网页游戏代码,discuz动漫论坛模板,织梦的登录注册页面模板,java 酒店管理系统,安卓旅游app源程序lzw
密码:
android游戏源码怎么运行,ubuntu用户找回,tomcat为什么部署错误,京东 爬虫软件,php是弱类型语言吗,河南抖音seo优化推广快速排名lzw
使用加密方式保存密码到数据库的限制
在决定是否使用加密方式保存密码以前,我们还需要考虑一些问题。因为MD5是单次加密算法,加密以后的信息不可以解密,所以,如果用户丢失密码,任何人都很难找到用户原来的密码,这时候,网站也就相应的失去一个很重要的功能,那就是用户提供其他信息来取得忘记的密码的功能,这不能不说是网站的一个大缺陷。另外,采用这样的加密方式,必须完全修改以前的用户资料,要求用户完全重新注册,这也是这种方法比较困难的一个地方。
总 结
以上我们详细介绍了MD5加密用户密码的实现方法,同时,也介绍了采用加密密码方式以后,用户鉴别的实现。并讨论了使用这种加密方式的应用限制。在实际应用中,我们可以将次方法做适当的修改和补充,以更加适合我们的应用需要