我試圖將用戶密碼存儲在我的程序中,但我不想以純文本形式存儲它。因此,我將其散列並存儲起來,而當用戶需要在程序啓動時輸入密碼(以防止未經授權的用戶)時,我將輸入的密碼散列並對兩個散列進行比較。SHA1散列算法問題
但是,以下代碼爲幾乎所有輸入的密碼生成相同的散列。任何人都可以告訴我如何修復下面的代碼,或指導我更好的散列函數?
public static string getSHA1(string userPassword)
{
return BitConverter.ToString(SHA1Managed.Create().ComputeHash(Encoding.Default.GetBytes(userPassword))).Replace("-", "");
}
感謝您的任何幫助。
使用服用點你應該用鹽醃SHA512散列,或最好,bcrypt。 – SLaks
@SLaks:你想提供一些代碼嗎?我對加密遊戲非常陌生,需要我所能獲得的所有幫助。如果你願意,我會很樂意接受它作爲答案!如果沒有,謝謝你的開頭。 – CODe
http://derekslager.com/blog/posts/2007/10/bcrypt-dotnet-strong-password-hashing-for-dotnet-and-mono.ashx – geofftnz