我正在努力确保我正确地实施加密任务。我想知道我的IV和Key用法是否正确。
情境:
ASP.NET 4.0 Web应用程序,它请求并存储最终用户的电子邮件地址和其他个人数据。我想在存储在SQL服务器之前加密此信息。加密是为了保护数据免受爱管闲事的DBA和数据库存储介质的物理盗窃。
Web应用程序需要对个人数据执行任务,例如向用户发送电子邮件,因此需要能够解密存储在数据库中的值。
提案:
每次更新电子邮件地址时,都会生成新的IV。使用IV和密钥加密电子邮件地址(这是问题)。将IV和加密数据存储在SQL Server中。
问题:
你在哪里储存钥匙?
我最好使用.NET4 MachineKey类进行加密/解密吗?
我希望C#代码级解决方案是合适的。目前,我无法理解列级SQL Server加密,但如果你告诉我这是“正确的方法”,我会再次破解这些书。
答案 0 :(得分:1)
嗯,恕我直言,最好的方法是在SQL Server中使用列级加密。它对您来说是透明的,并且将提供您正在寻找的安全级别。