Fügen Sie ein Passwort zur Sqlite-Datei in Xamarin-Formularen hinzu

8

Ich habe eine Xamarin-Formularanwendung, die eine SQLite-Datenbank erstellt.

Microsoft.EntityFrameworkCore.Sqlite wird zum Erstellen der Datenbank verwendet. Ich möchte der Datei ein Passwort hinzufügen. Ich habe im Internet gesucht, aber leider kann ich keinen offensichtlichen Weg finden. In StackOverflow gibt es einige Fragen, die meiner Frage ähnlich sind, aber die Plattform ist nicht Xamarin Forms.

Hier sind die Fragen:

Dies ist mein Code zum Erstellen der Datenbank:

%Vor%     
Ahmed Shamel 25.02.2018, 17:49
quelle

3 Antworten

4

Ich schrieb einen Beitrag auf Verschlüsselung in Microsoft.Data.Sqlite . Sie können es in EF Core nutzen, indem Sie eine offene Verbindung an UseSqlite übergeben.

Verwenden Sie anstelle von Microsoft.EntityFrameworkCore.Sqlite diese Pakete:

  • Microsoft.EntityFrameworkCore.Sqlite.Core
  • SQLitePCLRaw.bundle_sqlcipher
%Vor%     
bricelam 02.03.2018, 18:30
quelle
0

Es gibt keine Möglichkeit den Passwortschutz für sqlite db out of the box hinzuzufügen, es gibt eine ganze Erklärung hier bezüglich des Grundes in weiteren Einzelheiten.

Es gibt jedoch eine nette Lösung, die auf diesem thread mit SQL Chiper , um Ihre DB pro Seite zu verschlüsseln, wenn Sie bereit sind, das Geld zu investieren.

Wenn Sie Ihre gesamte db-Datei bei Bedarf ver- und entschlüsseln möchten, verwenden Sie PCLCrypto .

Aber wie Sie bemerkt haben, ist die einzige Möglichkeit, diese Art von Schutz zu erreichen, die Verschlüsselung Ihrer db-Datei. Sie können kein Passwort festlegen.

    
Barr J 28.02.2018 06:18
quelle
0

Nicht genau eine Antwort auf Ihre Frage, sondern ein Vorschlag. Sie können eine Bibliothek namens Akavache verwenden, um Daten zu speichern.

Es gibt vier Speicherorte:  - BlobCache.LocalMachine - Gerätespeicher  - BlobCache.UserAccount - Benutzer    die Einstellungen. Einige Systeme sichern diese Daten in der Cloud.  - BlobCache.Secure - Zum Speichern sensibler Daten - wie Anmeldeinformationen. (Verschlüsselt)  - BlobCache.InMemory - Eine Datenbank, die im Speicher gehalten wird. Die Daten    wird für die Lebensdauer der App gespeichert.

Ich hoffe, das hilft

    
Dimitar Mazhlekov 06.03.2018 01:17
quelle