2012-10-10 20 views
0

.NET成員資格存儲所有密碼編碼。像這樣:.NET MVC成員資格 - 在網頁上顯示當前用戶密碼

TcsrrZQK9xZw3A4lXTKmeDC5LbJ6sAePCBuAipqnM4M= 

我有一個客戶要求,即在用戶配置文件系統需要顯示當前用戶密碼。

它是否有可能(我仍然需要在數據庫編碼的密碼爲保密的原因)?任何例子?

+1

希望看到其他用戶的密碼的客戶是一個解決方案,應該解決不同的問題。但是如果你必須知道,那看起來像Base64。 – CodeCaster

+0

@CodeCaster - 但Base64背後的字節是什麼? –

+3

@HenkHolterman我從來沒有使用內置的成員資格提供程序,但顯然默認密碼是密碼(Base64然後將二進制散列存儲在varchar列中?),所以幸運的是它們不能被這種方式濫用。我只是想說OP應該解決真正的問題,例如:_「應用程序中的一些(管理員)用戶應該能夠登錄(即模擬)不同的用戶來執行操作」_,或_「我們的用戶希望在忘記密碼時能夠檢索密碼「,因此可以選擇更好的解決方案。 – CodeCaster

回答

1

您無法顯示密碼爲ASP.net MVC使用單向加密。

1

是的,這是可能的。

您將需要一個自定義membership provider與物業:

EnablePasswordRetrieval = true 

這又需要其他一些設置,如

PasswordFormat = Encrypted (normally: Hashed) 

我不知道這樣的供應商是否存在,但你可以寫一個。

2

通常/最佳做法是使用單向加密進行密碼存儲。

您只能使用對稱加密並覆蓋內置密碼存儲方法來執行所需操作。

更好的解決方案是通過電子郵件發送臨時密碼給需要在下次登錄時更改密碼的用戶。作爲一個非常不安全的擴展,你可以在屏幕上顯示這個密碼。

祝你好運

+0

+1使用加密而不是散列來存儲密碼似乎是實現OP所要查找的最安全的途徑。 –