加密/解密数据是数据库的第一个实体框架

时间:2016-11-08 21:12:39

标签: c# asp.net entity-framework-6

我有一个网站,我使用Entity Framework数据库优先方法进行数据保存和检索。我希望能够加密保存数据并在检索时解密它

有关从哪里开始的任何建议?

1 个答案:

答案 0 :(得分:1)

您可以使用AES加密来加密数据:
Using AES encryption in C#并将数据保存为varbinary 在实体框架中,您需要将加密数据映射为Byte []。

例如,您可以创建一个实体框架模型,将加密数据映射为Byte []到数据库; datareader类,用于解密来自实体框架模型的数据,以及一个将数据加密到模型的数据编写器。

请记住,如果您通过C#加密数据,则无法对数据库进行搜索查询,要搜索记录,您必须加载并解密内存中数据库中的所有数据!

要使用完整的搜索和查询功能,它是在数据库端启用加密的更好选项,这可以通过SQL Server 2016 Always Encrypted完成。

另一种选择是实现同态加密https://www.microsoft.com/en-us/research/project/homomorphic-encryption/,但实际上它是一种实验技术。