共用方式為


隱私權和數據安全性

保護及管理 ADO.NET 應用程式中的敏感性資訊,取決於用來建立它的基礎產品和技術。 ADO.NET 不會直接提供服務來保護或加密數據。

密碼編譯和哈希碼

.NET Framework System.Security.Cryptography 命名空間中的類別可從 ADO.NET 應用程式使用,以防止未經授權的第三方讀取或修改數據。 有些類別是封裝未受管理的 Microsoft CryptoAPI,而另一些則是受管理的實作。 密碼 編譯服務 主題提供 .NET Framework 中的密碼編譯概觀、說明如何實作密碼編譯,以及如何執行特定的密碼編譯工作。

與密碼學不同,密碼學允許數據加密和解密,而哈希數據是一個單向處理。 當您想要藉由檢查數據尚未改變來防止竄改時,哈希數據很有用:假設有相同的輸入字串,哈希演算法一律會產生完全相同的簡短輸出值,可輕易進行比較。 使用哈希碼確保數據完整性 說明如何產生和驗證哈希值。

加密組態檔

保護數據源的存取權是保護應用程式時最重要的目標之一。 如果連接字串未受到保護,就會顯示潛在的弱點。 儲存在組態檔中的連接字串會儲存在 .NET Framework 已定義一組通用元素的標準 XML 檔案中。 受保護的組態可讓您加密組態檔中的敏感性資訊。 雖然主要是針對 ASP.NET 應用程式所設計,但受保護的組態也可以用來加密 Windows 應用程式中的組態檔區段。 如需詳細資訊,請參閱保護連線資訊

保護記憶體中的字串值

String如果物件包含敏感資訊,例如密碼、信用卡號碼或個人資料,由於應用程式無法從程式記憶體中刪除這些數據,因此在使用後可能會洩露這些資訊。

String是不可變的;一旦建立它之後,就無法修改其值。 看似修改字串值的變更實際上會在記憶體中建立物件的新實例 String ,並將數據儲存為純文本。 此外,無法預測字串實例何時會從記憶體中刪除。 使用字串的記憶體回收在 .NET 垃圾回收中是不具可預測性的。 如果您的數據真正敏感,您應該避免使用 StringStringBuilder 類別。

類別 SecureString 提供在記憶體中使用資料保護 API (DPAPI) 加密文字的方法。 當不再需要字串時,就會從記憶體中刪除。 沒有可快速讀取 ToString 內容的方法 SecureString。 您可以初始化SecureString的新實例,無需賦予任何值,或通過傳遞指標給Char對象的陣列來進行初始化。 然後,您可以使用 類別的各種方法來處理字串。

另請參閱