2016-03-15 67 views
0

我有一個需要用戶登錄的MVC 4 Web應用程序。大多數用戶沒有電子郵件帳戶。如果有人忘記了他的密碼,我該如何重置它?我找到的所有重置密碼系統都需要某種電子郵件帳戶。我只想簡單一些,比如將其重置爲默認密碼,並且用戶可以使用該默認密碼登錄後更改密碼。問題是密碼在SQL Server中被加密。我找不到一個加密密碼的工具。MVC 4加密默認密碼

+4

密碼不應該加密 - 他們應該被散列(和鹽漬)。如果你的用戶沒有電子郵件帳戶,你應該問他們一個帳戶的安全問題創建並允許他們根據該安全問題重置密碼。也沒有「默認密碼」 - 讓他們馬上提供新密碼。 –

回答

1

首先,使用最廣泛的認證實現需要相當長的時間以防止用戶憑證存儲在可逆(即平面文本或可以加密的東西)格式中。相反,您應該散列&鹽平面文本憑據並與存儲的值進行比較。

除了安全地重置用戶憑據,您需要通過其他方式對其進行身份驗證,這是您最常提到的通過電子郵件提及的方式,但如果這不可行,則應該查看其他帶外方法的身份驗證,可能會向用戶發送帶有一次性代碼的SMS,或者讓他們回答一系列安全問題。驗證用戶身份後,強制他們設置新密碼並覆蓋爲用戶存儲的散列。