2016-11-08 3 views
0

Ich habe eine Website, die ich Entity Framework-Datenbank-Ansatz für das Speichern und Abrufen von Daten verwenden. Ich möchte in der Lage sein, die Daten beim Speichern zu verschlüsseln und beim Abrufen zu entschlüsseln.Verschlüsseln/Entschlüsseln von Daten ist Datenbank zuerst Entity Framework

Irgendwelche Vorschläge, wo ich anfangen soll?

+0

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

+0

ja ich googelte es und immer verschlüsselt (wie ich verstanden habe) ist ein SQL Server 2016 Feature, ich Benutzer SQL Server 2014 –

+1

Dies ist viel zu weit von einer Frage für Stack Overflow. Bitte lesen Sie [fragen] und was ist [off-topic] (http://stackoverflow.com/help/dont-ask). –

Antwort

1

Sie können die Daten mit AES-Verschlüsselung verschlüsseln:
Using AES encryption in C# und speichern Sie die Daten in der Datenbank als varbinary.
Im Entitätsframework müssen Sie die verschlüsselten Daten als Byte [] zuordnen.

Zum Beispiel können Sie ein Entity-Framework-Modell erstellen, das die verschlüsselten Daten als Byte [] der Datenbank zuordnet; Datenreader-Klasse, die die Daten aus dem Entity-Framework-Modell entschlüsselt, und ein Datawriter, der Daten an das Modell verschlüsselt.

Denken Sie daran, dass wenn Sie die Daten über C# verschlüsseln können Sie keine Suchanfrage in der Datenbank ausführen, um einen Datensatz zu suchen, müssen Sie alle Daten aus der Datenbank im Arbeitsspeicher laden und entschlüsseln!

Um vollständige Such- und Abfragefunktionen zu verwenden, ist es eine bessere Option, die Verschlüsselung auf Datenbankseite zu aktivieren. Dies kann mit SQL Server 2016 Always Encrypted erfolgen.

Eine andere Option ist die Implementierung der homomorphen Verschlüsselung https://www.microsoft.com/en-us/research/project/homomorphic-encryption/, aber eigentlich handelt es sich um eine experimentelle Technologie.

Verwandte Themen