如何将Microsoft Access密码与用户提供的密码进行比较?

时间:2010-03-05 20:11:38

标签: security ms-access passwords

如何比较文本框字符串与用户在启动Microsoft Access数据库时用于验证自身的密码。

Microsoft Access版本为2003.用户使用Microsoft Access Jet security验证自己。

更新: Per CesarGon(谢谢),这实际上是一个比较哈希值的问题;我如何复制散列Microsoft Access做的并比较哈希?

2 个答案:

答案 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

确保为两个密码输入的文本不一致。

http://msdn.microsoft.com/en-us/library/bb177884.aspx