我希望有人能幫我解決我的問題。我一直負責撰寫將由我們的人力資源部門使用的計劃。該程序將是Intranet的一個子集,並將根據用戶的部門進一步進行限制。該計劃將包含一個員工檔案,該檔案將存儲一些敏感信息,如社會安全號碼。我試圖找到加密SSNs的最佳方式,以便它們不可讀爲數據庫中的純文本。如何使用VB.NET中存儲在web.config中的密鑰加密字段?
我發現代碼可以使用System.Security.Cryptography命名空間使用一些VB.NET內置函數,如here所述。
該代碼的作用是將數據插入數據庫時,該字段已加密。我面對的這個問題是,當我想讓員工退後時,我無法解密它。我的猜測是因爲我做這個,我需要解密的值在頁面上:
Dim rsa As New RSACryptoServiceProvider
它們基本上將定義一個新的加密服務提供商,而不是我用來擺在首位的加密數據的一個。我想知道,如果你做新的RSACryptoServiceProvider它會出現一個新的公/私鑰對?
我的下一個想法是瞭解如何將加密和解密密鑰存儲在web.config中,以便無論用戶在數據上的哪個頁面都可以解密。我沒有找到一個很好的例子,因爲我看到的所有內容都顯示瞭如何在web.config中加密/解密字段(例如密碼和數據庫連接),而不是在應用程序中實際使用它。這是一個加密數據的好方法嗎?如上所述,這將是內聯網的一個子集,因此應用程序將在本地舉行,而不會暴露於外部。我只是非常不舒服,因爲SSN在數據庫中可讀。
這是我第一次進入加密,所以我很抱歉,如果這是一個簡單的問題。
我在連接到SQL SERVER 2008 R2的Visual Studio 2015中使用VB.NET。我願意接受任何人的建議。
爲什麼你需要的SSN控制Intranet訪問配置文件?似乎這些信息根本就不需要。我知道我不想爲了這個目的而給我的SSN。 –
謝謝你的迴應。 SSN與控制Intranet訪問的配置文件無關。 SSN將用於只有HR會使用的員工檔案中。只有HR才能夠根據Active Directory權限訪問此頁面。我需要員工檔案中的SSN,因爲他們的想法是,如果人力資源需要,他們可以重新創建員工的一切。 SSN將存在於加密該字段的員工數據庫中。希望這是有道理的。 – msdev23