如何比较文本框字符串与用户在启动Microsoft Access数据库时用于验证自身的密码。
Microsoft Access版本为2003.用户使用Microsoft Access Jet security验证自己。
更新: Per CesarGon(谢谢),这实际上是一个比较哈希值的问题;我如何复制散列Microsoft Access做的并比较哈希?
答案 0 :(得分:1)
我认为你不能那样做。用户用于Jet安全性的密码被散列并存储在System.mdw数据库中;密码本身不存储,但只有密码计算的哈希值。没有(实用的)方法从该哈希中恢复密码。
修改即可。您可以使用Jet API让Jet为您执行验证。这是一些示例代码:
'set security database.
DBEngine.SystemDB = "C:\Temp\System.mdw"
'create a workspace.
Set wksp = DBEngine.CreateWorkspace("New", "John", "john's-password")
如果创建了工作区,则提供的密码是正确的。如果密码不正确,则不会创建工作区,并且会引发错误。
答案 1 :(得分:1)
在更改密码表单中,您可以执行ado sql命令:
ALTER USER user PASSWORD newpassword oldpassword
确保为两个密码输入的文本不一致。