SQL Server 2008 R2加密 - 使用实体框架

Tom*_* Ax 5 .net sql encryption entity-framework sql-server-2008-r2

我希望在我通过应用程序连接到的数据库上使用数据库加密.实体框架.

是否有一种简单的方法/最佳实践可以获取未加密的数据并将加密的数据写回数据库.我不是特别想手动编辑edmx xml,但我很难找到一些能告诉我如何实现这一目标的资源.

我打算使用Symmetric Key和三重DES加密算法.

Lad*_*nka 5

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

您的一般选择:

  • 透明数据加密 - SQL Server的功能 - 整个数据库在SQL Server端加密.您的应用程序不需要更改,它应该与EF一起使用.
  • 单元级加密 - SQL Server的功能 - 选定的列经过加密和存储varbinary.这需要特殊的查询和存储命令,因此如果要使用EF,则必须使用专门的数据库视图和存储过程与数据库进行交互.如果您不想使用数据库视图和存储过程,则必须手动维护EDMX并将所有这些SQL命令写入其SSDL部分.
  • 在您的应用程序中执行加密 - 您将使用ObjectMaterializedSavingChanges事件来处理解密和加密.您可能只能加密和解密字符串或二进制数据,因为您的属性数据类型不得更改(如果是字符串,则必须将加密值存储为base64字符串).