我正在使用SimpleMembershipProvider作爲我的數據庫提供者。SimpleMembershipProvider - 密碼加密
我已經增加了新的功能來通過繼承來改進這個提供者。
現在我想創建一個像「ChangeEmail」這樣的函數,但在此之前檢查輸入的密碼是否正確。
所以我必須加密輸入的密碼,並將結果與我的數據庫中的條目進行比較。
的問題是:
以何種方式SimpleMembershipProvider加密密碼?
我想:
Crypto.HashPassword(currentPassword);
結果是相似的,但不是在數據庫中的相同這樣的。
PasswordFormat屬性設置爲MembershipPasswordFormat.Hashed。經由Crypto.HashPassword
AIYlAKcmDaABMw1PVx1kheZq2KXkhVs4QjO7MnwfHPcTBjnmRobRqJzWYHYO/S4T7w==
這:
例如,哈希值「123456」,而產生登記
AG+md+0W2EuV9BzUdohkYMK547jB5ochvxeVKYQTkls0UQ+3W0BWPHnFoffiIn2byw==
它看起來像相同類型的編碼,但爲什麼結果是不同的?
你對['PasswordFormat'](http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider.passwordformat.aspx)屬性設置了什麼?這決定了密碼的存儲方式。 – adrianbanks
@adrianbanks MembershipPasswordFormat.Hashed – Never
如果'Crypto.HashPassword'不完全吸引,它將在每次調用時返回不同的密碼。 – CodesInChaos