暗号化はいらないときの基本
SQLite をシンプルに使うやりかたは、前の記事に書いたとおりです。
暗号化が必要になったとき
実際にアプリを公開するときに、DB ファイルの中身があっさり書き換えることができるのは、ちょっと……って思うなら暗号化がベスト。でも、これは自分で SQLite3 のライブラリーをコンパイルする道を選択したのと同じことだと思います。
GitHub - SQLiteUnityKit を利用しつつ Unity で SQLite を使うとき、暗号化するなら JAVA なんかがライブラリーの中に入ってくると邪魔になります。このキットはシンプルに DllImport で関数を呼び出してるだけです。
なので、なるべくシンプルに dll と so ファイルを作る必要があると思います。(x86/x64 win/android の4パターン)
このあたりを記事にまとめたので、ショートカットをメモ。
- Unity SQLiteUnityKit 暗号化 SQLite3 を Windows で利用する(DLL コンパイル)
- Unity SQLiteUnityKit 暗号化 SQLite3 を Android で利用する(.so コンパイル)
あと、SQLCipher のパスワードは64文字の 16 進数のテキストにすることでハッシュ化の回数(ストレッチング)を自分でやることができる。通常の設定はその回数が十分大きいので、ゲームで使う分にはアクセス速度に不満が出てくることがある。ケース・バイ・ケースで考えて、パスワードを自分でハッシュ化すると良いケースもあると思います。
ビギナーなので、間違いがあったらすいません。(おしえてください)このあたりの記事は 2020/02 時点では、数が少ないので、もうすこしネタが増えると嬉しく思います。