我繼承了使用ASP.NET成員資格提供程序進行用戶管理的應用程序。作爲各種修補程序和增強功能的一部分,我將用散列值代替純文本密碼的使用。在現有的重置密碼頁面上,用戶需要爲他們的安全問題,他們當前的密碼,他們想要的新密碼和所需的新密碼再次輸入正確的答案。使用散列密碼驗證安全問題的答案
我遇到了一個問題,似乎沒有一種簡單的方法來驗證輸入的安全問題答案是否正確。沒有這個檢查,用戶可以在該字段中輸入任何內容,只要他們輸入了正確的當前密碼,它將被重置。
我不能調用GetPassword(),因爲如果在Web.config中passwordFormat =「Hashed」,該方法不可用。
我試圖手動解密哈希的安全性問題的答案描述here但只適用於加密的值,而不是那些散列(邏輯我想:))
我已經手動嘗試散列用戶輸入的答案和比較即存儲在數據庫中的值,但兩個散列字符串不同。我正在使用第三篇文章here中描述的算法,它在比較散列密碼時可行,但不幸的是,不適用於哈希安全問題答案。
有沒有人有更多的建議?這似乎相當基本,所以我有一種感覺我錯過了一些明顯的東西。
Ofer,你是絕對正確的,但不幸的是,我們可以用我們能做的時間來限制我們。在此之前,密碼以純文本形式存儲在數據庫中,並通過電子郵件以純文本形式傳輸,因此至少我們改進了用戶管理功能的某些方面。 – Malice
你是絕對正確的,事情必須按順序完成。我只是想強調(爲了所有其他人將通過這個頁面)安全問題是不好的做法... –