2016-11-08 20 views
0

データの保存と取得には、Entity Frameworkデータベースを使用したWebサイトがあります。私はデータを暗号化して保存時に復号化できるようにしたい。データを暗号化/復号化するのはデータベースが最初です。Entity Framework

どこから始めたらよいですか?

+0

Googleだけ:https://blogs.msdn.microsoft.com/sqlsecurity/2015/08/27/using-always-encrypted-with-entity-framework-6/ – Fals

+0

はい私はそれをGoogle検索し、常に暗号化されています私が理解したように)は、SQL Serverの2016の機能は、私はユーザーのSQLサーバー2014 –

+1

これはあまりにもスタックオーバーフローのための質問広範です。 [ask]と[off-topic](http://stackoverflow.com/help/dont-ask)を読んでください。 –

答えて

1

AES暗号化を使用してデータを暗号化することができます。
Using AES encryption in C#データをvarbinaryとしてデータベースに保存します。
エンティティフレームワークでは、暗号化されたデータをByte []としてマップする必要があります。

たとえば、暗号化されたデータをByte []としてデータベースにマップするエンティティフレームワークモデルを作成できます。エンティティ・フレームワーク・モデルからデータを復号化するdatareaderクラス、およびデータをモデルに暗号化するデータライタ。

C#でデータを暗号化すると、データベースで検索クエリを実行できないため、レコードを検索するにはメモリ内のすべてのデータをロードして解読する必要があります。

完全な検索機能とクエリ機能を使用するには、データベース側で暗号化を有効にすることをお勧めします。これは、SQL Server 2016 Always Encryptedで行うことができます。

もう1つの選択肢は、準同型暗号化https://www.microsoft.com/en-us/research/project/homomorphic-encryption/を実装することですが、実際には実験的な技術です。

関連する問題