我正在嘗試使用登錄/註銷功能創建網站,並計劃正確散列和醃製密碼。然而,我面臨的問題是我如何將密碼存儲在數據庫中。我知道我需要在數據庫中存儲散列+密碼(不是純文本或純文本加密),但我不知道如何在技術上將二進制數據插入到數據庫中。如何將散列存儲在使用C#的SQL Server數據庫中?
在我的早期嘗試中,我可以在數據庫中獲取數據的唯一方法是將二進制數據轉換爲base64字符串並插入到varchar
密碼字段中,但有些事情告訴我這不是正確的方法去做吧。
數據庫中的密碼字段當前是varchar
,但據我所知,哈希密碼是二進制的。所以即使我將密碼字段改爲二進制對象,我仍然不知道如何實際插入它!
如果我沒有任何意義,請要求澄清,我會盡快與您聯繫。
散列可以是一個varchar ...它不必是二進制的,但出於好奇心你使用的has函數是什麼? – hackartist 2012-02-12 21:25:33
爲什麼你不想使用base64?這很簡單,數據足夠小,不用擔心大小。 – 2012-02-12 21:31:32
Base64是最安全的方式,它將散列以可讀的形式存在。將醃製散列存儲爲純文本沒有任何問題;這就是存儲散列而不是密碼的全部目的。 – Douglas 2012-02-12 21:34:37