UWPアプリケーションでSQLiteデータベースを保護する

.net-4.6 c# entity-framework-core uwp

質問

これは、 SQLiteデータベースを使用するUWPアプリケーションです。以下、このアプリケーションの依存関係:

{
    "dependencies": {
    "Microsoft.EntityFrameworkCore.Sqlite": "1.0.1",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2",
    "Microsoft.Xaml.Behaviors.Uwp.Managed": "1.1.0",
    "Newtonsoft.Json": "8.0.3",
    "Template10": "1.1.*"
    },
    // ...
}

要件は次のとおりです: " [...]アプリケーションまたはSQLiteデータベースを開くことができる他のアプリケーションからデータベースにアクセスするためのパスワードが必要です 。"

Entity Framework Coreはこのシナリオをサポートしていないようです。 なにか提案を?

受け入れられた回答

Microsoft.Data.Sqliteでの SQL 暗号化と友人の使用に関するヒントについては、Microsoft.Data.Sqliteの暗号化 」を参照してください。

EF Coreでそれを使用する最も簡単な方法はおそらくあなたのDbContextとのオープンな接続を使用することDbContext

class MyContext : DbContext
{
    SqliteConnection _connection;

    protected override void OnConfiguring(DbContextOptionsBuilder options)
    {
        _connection = new SqliteConnection(_connectionString);
        _connection.Open();

        var command = _connection.CreateCommand();
        command.CommandText = "PRAGMA key = 'password';";
        command.ExecuteNonQuery();

        options.UseSqlite(_connection);
    }

    protected override void Dispose()
    {
        _connection?.Dispose();
    }
}

人気のある回答

SQLCipher( https://github.com/sqlcipher/sqlcipher )を見てください 。わずかなオーバーヘッドでシームレスな完全なDB暗号化を提供します。 Visual Studioで使用するためのVSIXを構築するのは苦痛です。自分でビルドしたくない場合は、 https://www.zetetic.net/sqlcipher/からライセンスを取得できます



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ