今回はXamarin.FormsでSqliteのデータを暗号化する方法についてです。
Xamarin.FormsでSqliteを使用する方法はいくつかありますが、今回はこの
sqlite-net-pcl 1.8.116
SQLite-net is an open source and light weight library providing easy SQLite database storage for .NET, Mono, and Xamarin applications.
This version uses S...
「sqlite-net-pcl」を使用した暗号化の方法を説明します。
なお今回「sqlite-net-pcl」の導入方法やデータの取得や保存などの方法については割愛します。使い方については「sqlite-net-pcl」のgitに説明が書いてあるのでそちらを参照してみてください。
GitHub - praeclarum/sqlite-net: Simple, powerful, cross-platform SQLite client and ORM for .NET
Simple, powerful, cross-platform SQLite client and ORM for .NET - GitHub - praeclarum/sqlite-net: Simple, powerful, cross-platform SQLite client and ORM for .NE...
では本題の暗号化する方法についてです。
暗号化は「sqlite-net-pcl」の暗号化対応ライブラリの入れるのとSqliteのコネクションを取得する処理で設定をすることで暗号化することができます。
まず、「sqlite-net-pcl」の暗号化対応ライブラリ、「sqlite-net-sqlcipher」のNugetをプロジェクトに追加します。「sqlite-net-pcl」のNugetは入れる必要はなく「sqlite-net-sqlcipher」だけ入れればOKです。
sqlite-net-sqlcipher 1.8.116
SQLite-net is an open source and light weight library providing easy SQLite database storage for .NET, Mono, and Xamarin applications.
This version uses S...
次にコネクション取得の処理部分ですが、通常は下記のような形でコネクションを取得します。
var databasePath = "sqliteのファイルのパス";
var db = new SQLiteConnection(databasePath);
暗号化したい場合は下記のようにオプションを指定し、コネクションの取得をします。
var options = new SQLiteConnectionString(DatabasePath, true, key: "password");
var db = new SQLiteConnection(options);
SQLiteAsyncConnectionでも同様にして暗号化処理ができます。
var options = new SQLiteConnectionString(DatabasePath, true, key: "password");
var db = new SQLiteAsyncConnection(options);
これでSqliteのファイルが暗号化されます。