SQLChipherの公式サイト
で説明されている手順を参考に導入手順を書いていきます。
前提として、
import android.database.sqlite
を利用してsqliteによるデータベース処理を実装しているものとします。
1.プロジェクトにライブラリを導入
app/build.gradleに以下の内容を追加して同期します。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
・・・
compile 'net.zetetic:android-database-sqlcipher:3.5.9@aar'
}
2.importライブラリの変更
以下のようにimportするライブラリを変更します。
・変更前
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
・変更後
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteOpenHelper;
3.メソッド使い方の変更
以下のように利用するメソッドとその使い方を変更します。
・変更前
ListDataOpenHelper helper = new ListDataOpenHelper(this);
rdb = helper.getReadableDatabase();
wdb = helper.getWritableDatabase();
・変更後
SQLiteDatabase.loadLibs(this);
ListDataOpenHelper helper = new ListDataOpenHelper(this);
rdb = helper.getReadableDatabase(”<任意の暗号化用文字列>”);
wdb = helper.getWritableDatabase(”<任意の暗号化用文字列>”);
SQLを利用する前にあらかじめloadLibsしておくこと
getReadableDatabase/getWritableDatabaseメソッドを使用時に引数に暗号化用の文字列を渡すこと
この2つの変更のみです。
以上の3つの手順で簡単に導入できました。
このSQLChipherを導入したアプリ「パスワードメモ」を公開しました。
サイトのアカウントIDやパスワード情報を一括管理できるアプリです。
データベースを暗号化する事で、もしもの事があってもデータの中身を覗くことができないので安心です。
