【发布时间】:2017-11-22 23:49:30
【问题描述】:
我已经开始阅读和试验 C# 中的加密和解密技术
我已经使用以下链接中提供的信息在 SQL Server 2008 中尝试了数据加密和解密
通过使用以下查询(来自链接示例),我可以使用 SQL 查询解密一个值
OPEN SYMMETRIC KEY Sym_password
DECRYPTION BY CERTIFICATE Cert_Password WITH PASSWORD = 'Password!2';
SELECT CAST(DECRYPTBYKEY([Password]) as varchar(200))
FROM Security
CLOSE SYMMETRIC KEY Sym_password;
如何在我的 C# 应用程序中执行相同的操作?
在我的 MVC 应用程序中,我使用电子邮件地址作为登录用户名(默认情况下,密码使用简单成员身份进行哈希处理)。请建议我在 SQL 级别加密电子邮件字段并在 C#(应用程序级别)中解密这些值的最佳方法
当用户在应用程序中输入他的用户名(电子邮件)时,我如何在应用程序端加密该值并将其与 SQL 记录中的加密值进行比较。
【问题讨论】:
-
对 SQL Server 2008 的主流支持已于 2 年前结束。考虑在 SQL Server 2016 (docs.microsoft.com/en-us/sql/relational-databases/security/…) 中迁移到列级加密。这允许加密由 SQL Server 客户端 API 完成,而不是服务器对您的代码透明。
-
感谢@DanGuzman 提供信息。但不幸的是,我现在只有 2008 版。
-
是否需要加密邮件?为什么不使用加盐哈希?
标签: c# sql-server encryption cryptography simplemembership