我有一个网站,我使用Entity Framework数据库优先方法进行数据保存和检索。我希望能够加密保存数据并在检索时解密它
有关从哪里开始的任何建议?
答案 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/,但实际上它是一种实验技术。