我目前正在建立一個登錄過程,並決定將我的用戶密碼存儲在數據庫與散列密碼結合鹽。想知道存儲hashpassword和salt的數據類型是Varchar還是NVarchar足夠了?SQL Server 2008什麼DataType存儲散列密碼
編輯:鏈接,我就 storing passwords in SQL Server
我目前正在建立一個登錄過程,並決定將我的用戶密碼存儲在數據庫與散列密碼結合鹽。想知道存儲hashpassword和salt的數據類型是Varchar還是NVarchar足夠了?SQL Server 2008什麼DataType存儲散列密碼
編輯:鏈接,我就 storing passwords in SQL Server
密碼的散列值應該是統一的字符串長度,並以十六進制或base64文本(或其他單字節每字符表示)表示。
編輯(你只需要每散列函數輸出的長度均勻char類型!)
所以焦炭就足夠了。
微軟使用,當我們使用SQL成員Nvarchar
,看看下面的圖片
盛大,只是一個問題,我有散列和鹽存儲在數據庫中。用戶出現並輸入他的用戶名和密碼。我首先必須從數據庫中檢索salt,然後使用此值通過用戶輸入的密碼創建哈希值,然後使用該值對數據庫中的哈希值進行檢查? – StevieB
爲什麼不使用ASP.NET 2.0成員和角色教程系列中的內部版本? http://weblogs.asp.net/scottgu/archive/2006/05/07/ASP.NET-2.0-Membership-and-Roles-Tutorial-Series.aspx –
檢查此以及http://www.asp。網絡/安全/教程 –
大,只是一個問題,我都存儲在DB哈希和鹽。用戶出現並輸入他的用戶名和密碼。我首先必須從數據庫中檢索salt,然後使用此值通過用戶輸入的密碼創建哈希值,然後使用該值對數據庫中的哈希值進行檢查? – StevieB
這是正確的。在某些時候,你必須將鹽(來自數據庫或其他來源)與用戶的密碼相結合,對其進行散列並進行比較。您也可以選擇在存儲過程中執行此操作,這樣可以提高安全性,因爲您不必將鹽從數據庫中取出。看到這裏:http://msdn.microsoft.com/en-us/library/ms174415.aspx –