我希望有人能帮我解决我的问题。我一直负责撰写将由我们的人力资源部门使用的计划。该程序将是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