使用MD5哈希类模块生成安全的用户密码

我已经看到了很多有关如何创建安全数据库密码的问题。 我将介绍一种使用MD5加密算法对密码进行加密的方法,以实现最大的安全性。

首先,您需要下载附件的类模块(clsMD5.txt)并将其导入数据库。 这个类模块是我们要讲的内容的核心。 感谢Robert Hubley编写它-您是我的英雄!

接下来,您的数据库需要一个users表。 我们以这个为例。


tblUsers 
Field           Type
UserID          AutoNum  PK
strLastName     Text
strFirstName    Text
strMI           Text
strUserName     Text    (no duplicates)
strPassword     Text    (encrypted)
strPermissions  Text    (access permissions)     
现在,您将需要某种类型的“编辑用户选项”表单供用户创建密码。建立表单,并为密码添加一个UNBOUND文本框控件。 我们将其称为txtTempPassword。 确保将“输入掩码”设置为“密码”,以便没有人可以监视密码。

因此,我们有以下内容:


Object      Name             Bound To 
Form        frmUserOptions   tblUsers
Text Box    txtTempPassword  Unbound     
现在,在txtTempPassword的AfterUpdate事件上,使用以下代码:

strPassword = DigestStrToHexStr(Me.txtTempPassword) 
DigestStrToHexStr()函数可以将您的纯文本密码转换为安全的MD5加密的十六进制乱码。

现在,当用户尝试登录到您的自定义登录表单时您会怎么做?

您的登录表单可能会遵循以下基本结构:


Object      Name             Bound To
--------------------------------------------------- 
Form        frmLogin         Unbound 
Text Box    txtUsername      Unbound
Text Box    txtPassword      Unbound
Button      cmdLogin 
在按钮的OnClick事件中,您将具有用于对照表检查输入的用户名和密码的文本的代码,以查看是否存在匹配项。 显然,现在密码已加密,不会。 解决方案是使用相同的DigestStrToHexStr()函数对搜索字符串进行加密。 考虑以下:

Private Sub cmdLogin_Click()
Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT UserID, strUsername, strPassword FROM tblUsers", dbOpenSnapshot)
    'first, see if the username is valid
    rs.FindFirst "strUsername = '" & Me.txtUsername & "'"
    If rs.NoMatch Then GoTo ErrorOut
    'next, check the password
    If rs!strPassword = DigestStrToHexStr(Me.txtPassword) Then
        DoCmd.Close
        'open switchboard and run any other code
    End If
    Exit Sub
    'close the app if the login was incorrect
ErrorOut:
    MsgBox "Username/password combination is invalid." & _
    vbCrLf & vbCrLf & "Exiting application.", vbCritical
    Application.Quit
End Sub
显然,您将需要个性化此代码以供使用,但这就是这个主意。 使用安全的MD5加密密码制作数据库,玩得开心!
附加的文件
档案类型:txt clsMD5.txt (18.1 KB,2261视图)

From: https://bytes.com/topic/access/insights/877896-generate-secure-user-passwords-using-md5-hash-class-module

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值