SQLChipherの公式サイト

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やパスワード情報を一括管理できるアプリです。

データベースを暗号化する事で、もしもの事があってもデータの中身を覗くことができないので安心です。