.net - SQL Server 2008 R2 加密 - 使用 Entity Framework

标签 .net sql entity-framework encryption sql-server-2008-r2

我希望在通过我的应用程序连接到的数据库上使用数据库加密。 Entity Framework 。

是否有一种简单的方法/最佳实践能够获取未加密的数据并将加密的数据写回数据库。我并不特别想手动编辑 edmx xml,但我正在努力寻找一些资源来告诉我如何实现这一点。

我打算使用对称 key 和三重 DES 加密算法。

最佳答案

SQL Server 2008 R2 加密是什么意思 - 这是一个非常模糊的问题,因为它有很多含义。

您的一般选择:

  • 透明数据加密 - SQL Server 的特性 - 整个数据库在 SQL Server 端加密。您的应用程序不需要更改,它应该与 EF 一起使用。
  • 单元级加密 - SQL Server 的功能 - 所选列被加密并存储为 varbinary .这需要特殊的查询和存储命令,因此如果您想使用 EF,您将不得不使用专门的数据库 View 和存储过程来与您的数据库进行交互。如果您不想使用数据库 View 和存储过程,则必须手动维护 EDMX 并将所有这些 SQL 命令写入其 SSDL 部分。
  • 在您的应用程序中执行的加密 - 您将使用 ObjectMaterializedSavingChanges自己处理解密和加密的事件。您可能只能加密和解密字符串或二进制数据,因为您的属性数据类型不得更改(如果是字符串,您必须将加密值存储为 base64 字符串)。
  • 关于.net - SQL Server 2008 R2 加密 - 使用 Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9394403/

    相关文章:

    SQL 在 Where 子句中处理可为空的外键

    sql - 带有 OUTPUT 参数的 T-SQL 存储过程出错

    c# - EF6 ToListAsync() 取消长查询不起作用

    entity-framework - 表达式树中的异常

    c# - ControlDesigner 类 (C# WinForms)

    c# - 正则表达式允许非 ascii 和外文字母?

    c# - AfterMap 中的 AutoMapper 上下文值?

    MySQL 解释 - 需要索引建议/反馈

    c# - DomainDataService (ViewModel) 通过字符串名称加载实体

    .net - 枚举 resx 中的所有字符串