對於如何將文本框字符串與用戶在啓動Microsoft Access數據庫時用於驗證自己的密碼進行比較感到好奇。如何比較Microsoft Access密碼與用戶提供的密碼?
Microsoft Access版本是2003.用戶使用Microsoft Access Jet security進行身份驗證。
更新:每CesarGon(謝謝),這是一個真正的比較哈希值的問題;我如何複製Microsoft Access的散列並對散列進行比較?
對於如何將文本框字符串與用戶在啓動Microsoft Access數據庫時用於驗證自己的密碼進行比較感到好奇。如何比較Microsoft Access密碼與用戶提供的密碼?
Microsoft Access版本是2003.用戶使用Microsoft Access Jet security進行身份驗證。
更新:每CesarGon(謝謝),這是一個真正的比較哈希值的問題;我如何複製Microsoft Access的散列並對散列進行比較?
在您更改密碼錶單,您可以執行一個ADO SQL命令:
ALTER USER user PASSWORD newpassword oldpassword
只要確保兩個密碼輸入的文本是不一樣的。
謝謝Jeff O! :)我將在週一重新開始工作時嘗試此解決方案。 – iokevins 2010-03-06 19:23:04
我不認爲你可以做到這一點。用戶用於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")
如果工作區已創建,則提供的密碼是正確的。如果密碼不正確,工作區將不會被創建並且會引發錯誤。
也許你應該解釋爲什麼* *你想這樣做。你正在詢問一個預定義的解決方案(事實證明這是不可能的),而不是描述你試圖解決的實際問題。 – 2010-03-05 20:57:18
感謝大衛的建議。 :) – iokevins 2010-03-05 21:19:22
這個練習的要點是有一個密碼更改屏幕。我們想比較輸入的密碼與現有密碼。這樣,密碼真的改變了。 – iokevins 2010-03-05 22:33:23