我目前有一个MySQL数据库,其中包含用于登录的用户名和密码等。我有一个MS Access 2010前端,我建立了一个登录界面,要求输入用户密码和名称,并将其与MySQL用户名和密码进行比较,如果匹配则会打开另一个MS Access表单。我现在想将密码存储在MySQL数据库中的hash sha1中,但我不知道如何编写我的vbscript,以便它将获取用户在MS Access表单中输入的密码,将其转换为hash sha1和将它与特定用户的MySQL数据库中的内容进行比较。我已经包含了我在不使用哈希时使用的vbscript。非常感谢任何协助。
'compares username and password to a query and will either open another form OR display an incorrect password message.
Dim dbs As Database
Dim rstUserPwd As Recordset
Dim bFoundMatch As Boolean
Set dbs = CurrentDb
'query that has all the usernames and password
Set rstUserPwd = dbs.OpenRecordset("qryUserPwd")
bFoundMatch = False
If rstUserPwd.RecordCount > 0 Then
rstUserPwd.MoveFirst
'name of the access form is called 'Login'
Do While rstUserPwd.EOF = False
If rstUserPwd![UserName] = Form_Login.txtusername.Value And rstUserPwd![Password] = Form_Login.txtpassword.Value Then
bFoundMatch = True
Exit Do
End If
rstUserPwd.MoveNext
Loop
End If
'open admin form
If bFoundMatch = True
DoCmd.Close acForm, Me.Name
DoCmd.OpenForm "admin"
Else
MsgBox "Incorrect User Name or Password"
End If
答案 0 :(得分:0)
Mysql拥有自己的sha1函数(以及其他加密函数),因此您可以执行“SELECT permission FROM customers WHERE sha1(key)= sha1('”& entered_key&“')” 见http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_sha1 所以你的vba本身不需要sha算法。
如果你真的想要你可以使用vba / vbscript sha算法,如果你在谷歌周围你会发现几个,例如像这样http://bytes.com/topic/access/insights/906938-sha2-cryptographic-hash-algorithm-vba-vbscript