8

私は現在hibernate-sqliteを使用しています。

動的に作成されたsqliteデータベースにアクセスするには、これは完全に機能します。今、私はsqliteファイルを保護したいと思います。いくつかの調査の結果、私は(AES)暗号化を使用する方法を見つけました。これが休止状態を使用して可能かどうか誰かが私に説明できますか?もしそうなら、どのように?これが機能しない場合、ファイル内のデータを保護するための他の解決策はありますか?

4

2 に答える 2

6

sqlite(System.Data.SQLite)の組み込み暗号化を使用できます。詳細については、http://sqlite.phxsoftware.com/forums/t/130.aspxをご覧ください。

SQLCipherを使用することもできます。これは、データベースファイルの透過的な256ビットAES暗号化を提供するSQLiteのオープンソース拡張機能です。http://sqlcipher.net

休止状態が必要な場合

FluentNHibernateを使用でき、次の構成コードを使用できます。

private ISessionFactory createSessionFactory()
{
    return Fluently.Configure()
            .Database(SQLiteConfiguration.Standard.UsingFileWithPassword(filename, password))
            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<DBManager>())
            .ExposeConfiguration(this.buildSchema)
            .BuildSessionFactory();    
}

private void buildSchema(Configuration config)
{
        if (filename_not_exists == true)
        {
            new SchemaExport(config).Create(false, true);
        }
}    

メソッドUsingFileWithPassword(filename, password)はデータベースファイルを暗号化し、パスワードを設定します。新しいデータベースファイルが作成された場合にのみ実行されます。この方法で開くと、暗号化されていない古いものは失敗します。

編集 :

あなたのためのより多くのオプション

  • SEE-公式の実装。
  • wxSQLite -SQLiteの暗号化も実装するwxWidgetsスタイルのc++ラッパー。
  • SQLCipher -openSSLのlibcryptoを使用して実装します。
  • SQLiteCrypt-カスタム実装、変更されたAPI。
  • botansqlite3 -botansqlite3は、暗号化にBotanの任意のアルゴリズムを使用できるSQLite3の暗号化コーデックです。

SEEおよびSQLiteCryptには、ライセンスの購入が必要です。

于 2012-12-21T07:02:07.633 に答える
6

SQLiteの暗号化拡張機能について知っていますか?

于 2012-12-20T21:11:14.710 に答える