2016-11-08 136 views
0

我有一個網站,我使用實體框架數據庫優先的方式進行數據保存和檢索。我希望能夠加密數據保存和解密在檢索加密/解密數據是數據庫第一實體框架

任何建議從哪裏開始?

+0

只是谷歌它︰https://blogs.msdn.microsoft.com/sqlsecurity/2015/08/27/using-always-encrypted-with-entity-framework-6/ – Fals

+0

是的我GOOGLE了它,並始終加密(據我所知)是一個SQL服務器2016年的功能,我用戶SQL Server 2014 –

+1

這是一個堆棧溢出問題太廣泛。請閱讀[問]和[離線](http://stackoverflow.com/help/dont-ask)。 –

回答

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/,但實際上它是一種實驗技術。