私は現在hibernate-sqliteを使用しています。
動的に作成されたsqliteデータベースにアクセスするには、これは完全に機能します。今、私はsqliteファイルを保護したいと思います。いくつかの調査の結果、私は(AES)暗号化を使用する方法を見つけました。これが休止状態を使用して可能かどうか誰かが私に説明できますか?もしそうなら、どのように?これが機能しない場合、ファイル内のデータを保護するための他の解決策はありますか?
私は現在hibernate-sqliteを使用しています。
動的に作成されたsqliteデータベースにアクセスするには、これは完全に機能します。今、私はsqliteファイルを保護したいと思います。いくつかの調査の結果、私は(AES)暗号化を使用する方法を見つけました。これが休止状態を使用して可能かどうか誰かが私に説明できますか?もしそうなら、どのように?これが機能しない場合、ファイル内のデータを保護するための他の解決策はありますか?
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およびSQLiteCryptには、ライセンスの購入が必要です。
SQLiteの暗号化拡張機能について知っていますか?