Sql server 使用实体框架在SQL server中搜索和更新加密数据

Sql server 使用实体框架在SQL server中搜索和更新加密数据,sql-server,entity-framework,sql-server-2008-r2,Sql Server,Entity Framework,Sql Server 2008 R2,我正在使用C#4.0、VS 2010 MVC 3和实体框架作为web应用程序,并使用SQL server 2008R2作为数据存储。我需要在一个表中加密三列—两列是文本列,一列是日期列,以更新它们并使用上述技术搜索这些列中的项目 TDE不是一个选项 在SQL server上执行所有加密功能似乎是最佳做法。然而,尽管有很多示例说明如何一次性对列进行加密,但在加密后更新或搜索这些字段却没有任何内容 除了将加密和解密转移到应用程序中,我看不到其他方法 欢迎所有指导、帮助、指示和提示 谢谢。根据定义,您

我正在使用C#4.0、VS 2010 MVC 3和实体框架作为web应用程序,并使用SQL server 2008R2作为数据存储。我需要在一个表中加密三列—两列是文本列,一列是日期列,以更新它们并使用上述技术搜索这些列中的项目

TDE不是一个选项

在SQL server上执行所有加密功能似乎是最佳做法。然而,尽管有很多示例说明如何一次性对列进行加密,但在加密后更新或搜索这些字段却没有任何内容

除了将加密和解密转移到应用程序中,我看不到其他方法

欢迎所有指导、帮助、指示和提示


谢谢。

根据定义,您无法搜索加密数据。您可以搜索已知纯文本的散列并处理可能的冲突。为此,您需要添加额外的列来保存正在加密的纯文本的散列。有关更多详细信息和示例,请参见

至于更新,我真的不明白问题是什么。您可以使用新的加密值更新加密值,就像任何其他更新一样


TDE在很大程度上是一个更好的选择。只是说,“

根据定义,您无法搜索加密数据。您可以搜索已知纯文本的散列并处理可能的冲突。为此,您需要添加额外的列来保存正在加密的纯文本的散列。有关更多详细信息和示例,请参见

至于更新,我真的不明白问题是什么。您可以使用新的加密值更新加密值,就像任何其他更新一样


TDE在很大程度上是一个更好的选择。只需输入“

如果由DB服务器执行加密,则未加密的值可能会出现在应用程序和DB服务器之间的TDS数据流中。您可能需要考虑实现SQL Server的SSL以防止信息泄漏,这取决于实现的细节-多谢,这是一个非常有用的DyTIF加密由DB服务器执行,未加密的值可能出现在应用程序和DB服务器之间的TDS数据流中。您可能需要考虑实现SQL Server的SSL以防止信息泄漏,这取决于实现的细节-多谢,这是一个非常有用的想法谢谢ReMUS。我在用速记进行搜索:-)。更新的问题是,如果使用EF,除了通过触发器之外,我看不到在哪里进行加密。您必须通过存储过程执行所有DML(插入,更新)交互。EF对这个场景的支持很差,所以你必须决定你的优先级,即使这意味着放弃一个或另一个ORM。谢谢Remus,这不是我想要的答案,而是我期待的答案。谢谢Remus。我在用速记进行搜索:-)。更新的问题是,如果使用EF,除了通过触发器之外,我看不到在哪里进行加密。您必须通过存储过程执行所有DML(插入,更新)交互。EF对这个场景的支持很差,所以你必须决定你的优先级,即使这意味着放弃一个或另一个ORM。谢谢Remus,这不是我想要的答案,而是我期待的答案。