2010-05-13 81 views
2

這是SQL Server中存儲的哈希密碼應該是什麼樣子?哈希在SQL Server中的密碼(asp.net)

alt text http://img28.imageshack.us/img28/2545/88871034.gif

這是功能我用哈希密碼(我發現它在一些教程)

public string EncryptPassword(string password) 
{ 
    //we use codepage 1252 because that is what sql server uses 
    byte[] pwdBytes = Encoding.GetEncoding(1252).GetBytes(password); 
    byte[] hashBytes = System.Security.Cryptography.MD5.Create().ComputeHash(pwdBytes); 
    return Encoding.GetEncoding(1252).GetString(hashBytes); 
} 

編輯 我嘗試使用SHA-1,現在字符串似乎看起來像因爲它們是:

public string EncryptPassword(string password) 
{ 
    return FormsAuthentication.HashPasswordForStoringInConfigFile(password, "sha1"); 
} 

// example output: 39A43BDB7827112409EFED3473F804E9E01DB4A8 

上圖中的結果看起來像破碎的s特林,但這沙1看起來正常....

這將是足夠安全嗎?

回答

3

Your're接近,但不是那裏。

對於安全散列,您需要在另一列中輸入salt值。其次,嘗試遠離MD5作爲散列提供者。它不如SHA-1或SHA-2安全。就像MD5一樣,SHA-1也包含在.NET中。

+0

所以,你是說這種入口看起來不錯? – 2010-05-13 10:21:22

+0

我編輯了我的問題,可以請看一下嗎? – 2010-05-13 13:01:48

+1

你的sha1樣本看起來很正常,但你應該像戴夫說的那樣做,並且也要投入一個鹽值。 – 2010-05-13 13:03:37