BLOG

2015年3月16日/ SQLCipher, SQLite,

[Android] 超簡単!DBを暗号化できるライブラリ”SQLCipher”の導入方法

こんにちは。佐々木です。

 

最近、広島イベントを紹介するiPhoneアプリAZAZひろしま」をリリースしました。
大手のマス広告では取り扱わない、地元ならではのイベントポータルアプリができたらいいなぁと思って作った次第です。

 

まだまだイベントの掲載数が少なくアプリも作り込んでないのでステレス的に運用しているのですが、もし興味が沸いた方はダウンロードしてみてください!
※ AppStoreで “ひろしま” と検索すれば出てくると思います。

 

さて、本題に戻りまして、今回はAndroidDB(SQLite)暗号化できるライブラリの導入方法についてご紹介します。
超簡単にできてセキュアなアプリが手軽に作れるライブラリなので、チェックしてみてくださいませ。

 

DB暗号化用ライブラリ”SQLCipher”とは?

SQLiteを手軽に暗号化できるオープンソースのライブラリです。
今回はAndroid版の導入から実装方法までをご紹介します。

まずは「zetetic Open Source SQLCiper」こちらからAndroid用のライブラリをダウンロードしてください。
※ この記事の時点ではv3.2.0が最新のようです。

Android Studioでの導入方法

今回の導入用にサンプルアプリ「SQLCipherSample」を作りましたので、こちらをベースに説明します。
ダウンロードしたAndroid用のライブラリ「sqlcipher-for-android-community-v3.2.0.zip」を解凍すると、下記のようなファイルが同梱されています。

 

SQLCipher解凍後

これをAndroid Studioで作ったサンプルアプリ「SQLCipherSample」に導入していきます。

 

まずは、src -> main 配下にディレクトリ “assets” を作成してください。
その作成したディレクトリ”assets”に、解凍したライブラリのassets配下のファイル”icudt46l.zip”をコピーします。

 

次に、解凍したライブラリのlibs配下の”sqlcipher.jar”と”sqlcipher-javadoc.jar”を、SQLCipherSampleアプリの”libs”にコピーします。
この後、jarファイルを右クリックしてナビゲーションから「Add As Library」を選択してください。
これによってライブラリのインポートが完了します。

 

次は src -> main 配下にディレクトリ “jniLibs” を作成し、残りのlibs配下のフォルダ “armeabi”・”armeabi-v7a”・”x86″をコピーします。
これで導入が完了しました。

 

導入直後のプロジェクトのツリー

こちらは導入直後のプロジェクトのツリーです。
上記のように表示されていれば導入完了となります。

 

SQLCipherを使ったDB暗号化実装方法

実装方法については zetetic公式サイト にサンプルがありますので、そちらを参考にご紹介します。
まずはdatabaseをインポートします。

この時、androidのdatabaseでないことに注意してください。

 

サンプルの通り、データベースのロード処理などを追加します。

 

あとは通常のSQLiteと同じ実装です。
android.database.sqlite.SQLiteOpenHelperを用いて通常通りのDB操作が可能となります。

 

おわりに

お手軽に導入できてセキュリティアップのライブラリなのでかなりオススメです。
導入事例も多く参考になるサイトもたくさんあるので、是非チェックしてみてください。

 

Resent Posts

Category