2015-01-21 66 views
0

我需要通過密碼提醒向umbraco用戶(成員)發送郵件。從umbraco.cms.businesslogic.member獲取清除密碼

我umbraco.cms.businesslogic.member.Member類工作:

Member member = Member.GetMemberFromLoginName(userName); 
string password = member.Password; 

但當我看這個密碼顯然是一個「編碼」(加密後)密碼,而不是「清除」之一。

有沒有辦法獲得「清除」密碼?

+0

你不能,也永遠不需要知道你的任何用戶的密碼 – Scherling 2015-01-21 09:32:39

回答

3

在創建帳戶時密碼被哈希(並且很可能被鹽化)。該網站不知道明文密碼是什麼 - 它只能將輸入密碼框的用戶的散列(理論上不可逆的單向密碼函數)與存儲的散列進行比較。

「忘記密碼」應該驗證帳戶的所有者併發送帶密碼重置鏈接的電子郵件。發送明文密碼電子郵件是一個巨大的安全違規行爲,因爲用戶經常在多個站點上重複使用他們的密碼,並且獲得用戶電子郵件的訪問權限將暴露可在數百個數百個不同網站/系統上嘗試使用的密碼。

3

希望不是。

以允許恢復密碼的方式存儲密碼是非常糟糕的做法。

你可以做什麼而不是「密碼提醒」是「密碼重置」:向他們發送一封電子郵件,其中包含允許他們重置密碼的鏈接。受到一些在幾個小時後過期並且只能使用一次的唯一號碼的保護。

+0

那麼什麼是「密碼」字段存在於成員類? – Serge 2015-01-21 09:28:26

+1

它包含可用於驗證給定密碼是否正確的密碼哈希。但不是爲了恢復它。 – Thilo 2015-01-21 09:28:58

+1

http://stackoverflow.com/questions/326699/difference-between-hashing-a-password-and-encrypting-it?lq=1 – Thilo 2015-01-21 09:30:59