我正在使用單向散列加密進行練習。MVC密碼屬性散列
我有一個實體框架的MVC模型,我想存儲一個密碼值。我希望有一個只寫屬性,但我發現的是,如果我沒有返回值,那麼它不會被存儲在數據庫中。每當我訪問編輯視圖時,我都會看到我的散列。我可以通過在編輯視圖中使用空的通用密碼輸入字段來解決該問題。
現在,我現在遇到的問題是,如果用戶想要編輯他們的信息並且不更改他們的密碼(通過將其留空),即使我沒有更改該屬性的值,密碼字段也會設置爲空。
任何人都可以提出一個更好的方法嗎?預先感謝您的回覆。
[DataType(DataType.Password), MaxLength(50)]
private string _Password;
public string Password
{
get
{
return _Password;
}
set
{
if(!string.IsNullOrEmpty(value))
{
_Password = FormsAuthentication.HashPasswordForStoringInConfigFile(value, "MD5");
}
}
}
永遠不要使用'FormsAuthentication.HashPasswordForStoringInConfigFile'。暴力行爲太快了。使用成員資格類或Rfc2898DeriveBytes。 – CodesInChaos