[英]Encrypt the password column in SQL Server 2008
通常的做法是存儲一個hash的密碼。 喜歡:
HASHBYTES('SHA1', convert(varbinary(32), @password))
使用 hash,您可以驗證密碼是否匹配,但您不知道密碼本身。 因此,即使黑客獲得了對您數據庫的完全訪問權限,他仍然不知道密碼。
web 上有很多教程。
相反,您應該考慮存儲密碼的哈希值而不是使用加密。 如果您不知道這些差異,hash(也稱為單向哈希)接受輸入並生成 gobbledygook(稱為哈希),這樣對於相同的輸入會生成相同的 gobbledygook。 身份驗證通過散列用戶在客戶端輸入的內容並將其與數據庫中的 gobbledygook 進行比較來工作。 如果它們匹配,則密碼相同。 如果不深入細節,哈希值永遠無法恢復為純文本,這是對它們的保護。 然而,加密涉及創建 cypher 以便如果您擁有解密密鑰,您可以將 cypher 恢復為純文本。
如果您使用 SQL 服務器和 ASP.NET,您應該使用 SqlMembershipProvider 查看 Forms 身份驗證。
微軟用這個名字叫
FormsAuthentication.HashPasswordForStoringInConfigFile
。
http://www.adventuresindevelopment.com/2009/05/23/a-simple-way-to-hash-passwords-in-aspnet/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.