簡體   English   中英

加密 SQL Server 2008 中的密碼列

[英]Encrypt the password column in SQL Server 2008

我想知道如何在 SQL Server 2008 中加密我的密碼列。我已經閱讀了這篇文章,但我仍然不知道如何......有更容易理解的教程嗎? 謝謝!

通常的做法是存儲一個hash的密碼。 喜歡:

HASHBYTES('SHA1', convert(varbinary(32), @password))

使用 hash,您可以驗證密碼是否匹配,但您不知道密碼本身。 因此,即使黑客獲得了對您數據庫的完全訪問權限,他仍然不知道密碼。

web 上有很多教程。

相反,您應該考慮存儲密碼的哈希值而不是使用加密。 如果您不知道這些差異,hash(也稱為單向哈希)接受輸入並生成 gobbledygook(稱為哈希),這樣對於相同的輸入會生成相同的 gobbledygook。 身份驗證通過散列用戶在客戶端輸入的內容並將其與數據庫中的 gobbledygook 進行比較來工作。 如果它們匹配,則密碼相同。 如果不深入細節,哈希值永遠無法恢復為純文本,這是對它們的保護。 然而,加密涉及創建 cypher 以便如果您擁有解密密鑰,您可以將 cypher 恢復為純文本。

如果您使用 SQL 服務器和 ASP.NET,您應該使用 SqlMembershipProvider 查看 Forms 身份驗證。

解釋: ASP.NET 2.0 中的 Forms 身份驗證

SqlMembershipProvider Class

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM