Android自己自帶有不加密的數據庫SQLite,若是要保存密碼之類的敏感數據在本地的話方法一是使用字段加密解密算法,方法二是整個數據庫都加密掉。若是隻是加密解密某個字段(如password)就推薦使用第一種方法,輕便易用;若是想要整個數據庫都加密的話,就推薦方法二了,使用其餘的數據庫SQLite,如SQLCipher,其是實現加密了的SQLite數據庫,使用方法與Android自帶的大部分同樣,就須要注意如下步驟,不然加密不成功。因爲本人使用的是Win平臺,對於SQLCipher的編譯什麼的就懶得去弄了,直接使用其二進制包了。android
這裏講的是SQLCipher for Android v2.2.2版本,使用的是AES加密,本人經過本身的探索和文章參考總結出來一下步驟和注意事項。git
git clone https://github.com/sqlcipher/android-database-sqlcipher.git
二進制文件:SQLCipher For Androidgithub
import net.sqlcipher.database.SQLiteDatabase;
SQLiteDatabase.loadLibs(this);//涉及到數據庫必須使用並且須要先聲明才能執行如下實例化的數據庫
/*fragment use this:
*SQLiteDatabase.loadLibs(getActivity());//涉及到數據庫必須使用並且須要先聲明才能執行如下實例化的數據庫
*/
關於SQLCipher的編譯,可參考:算法
一、爲跨平臺數據庫引擎 SQLite 實現加密擴展 https://sites.google.com/site/notegainexp/sqlite/weikuapingtaishujukuyinqingsqliteshixianjiamikuozhansql
二、SQLite加密--SQLCipher http://stormzhang.github.io/blog/2013/06/16/sqlite-encrypt/數據庫