久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

正確使用SQLCipher來加密Android數(shù)據(jù)庫

 Sundy工作室 2014-02-21

Android本身自帶有不加密的數(shù)據(jù)庫SQLite,如果要保存密碼之類的敏感數(shù)據(jù)在本地的話方法一是使用字段加密解密算法,,方法二是整個數(shù)據(jù)庫都加密掉,。如果只是加密解密某個字段(如數(shù)據(jù)庫)就推薦使用第一種方法,輕便易用;如果想要整個數(shù)據(jù)庫都加密的話,,就推薦方法二了,,使用其他的數(shù)據(jù)庫SQLite,如SQLCipher,,其是實現(xiàn)加密了的SQLite數(shù)據(jù)庫,,使用方法與Android自帶的大部分一樣,就需要注意以下步驟,,否則加密不成功,。

這里講的是SQLCipher for Android v2.2.2版本,使用的是AES加密,,本人通過自己的探索和文章參考總結(jié)出來一下步驟和注意事項,。

  1. 官方下載最新版本: http:/// ,本文所講版本實現(xiàn)加密功能后增大了6MB,,最新版本比較大,,但是能保證對Android版本的兼容性。
    源文件(可自由編譯):
    git clone https://github.com/sqlcipher/android-database-sqlcipher.git

    二進制文件: SQLCipher For Android

  2. 下載好二進制文件解壓后,,將里面對應(yīng)的.zip、.so,、.jar文件復(fù)制到對應(yīng)的工程文件夾,,如assets文件夾里的icudt46l.zip復(fù)制到工程的assets文件夾,完成,,應(yīng)該是與喜愛的樣子:
  3. 接下來,,針對libs文件夾里面加入的三個jar包(commons-codec.jar, guava-r09.jar 和 sqlcipher.jar)來Build path,如圖:
  4. 接下來如果你已經(jīng)使用了Android自帶的SQLite數(shù)據(jù)庫,,那么這部就是替換工作,,否者就是包引用工作,即將 android.database.sqlite.SQLiteDatabase的import替換為 net.sqlcipher.database.SQLiteDatabase,,如果實現(xiàn)了SQLiteOpenHelper也要修改為import net.sqlcipher.database.SQLiteOpenHelper,,反正就是 import中包含 android.database.sqlite.*  都替換成 info.guardianproject.database.sqlite.* 。import android.database.Cursor則不需要替換,。
  5. 接下來的關(guān)鍵一步是添加加密密匙,,添加方法是實現(xiàn)getWritableDatabase("thisismyencryptstringkey"),參數(shù)是字符串類型,,如果為""的話表示不加密,,這里要注意的是不能包含逗號否者也是實現(xiàn)不了加密的。
  6. 接下來在使用數(shù)據(jù)庫的Activity,,至少需要加入引入一下import(假設(shè)有DBManger或者DBHelper之類的封裝工具,,其要多加入import net.sqlcipher.database.SQLiteOpenHelper,來通過SQLiteOpenHelper聲明、創(chuàng)建數(shù)據(jù)庫):
    import net.sqlcipher.database.SQLiteDatabase;

     

  7. 接下來還是關(guān)鍵一步,,還是在Activity,,里面的onCreate方法加入,而且應(yīng)該是最先加入的(要早于實例化數(shù)據(jù)庫,,這個是為了引入包里面的so文件以進行引用,,否者會出現(xiàn)各種implementation、dbopen,、UnsatisfiedLinkError的問題):
    SQLiteDatabase.loadLibs(this);//涉及到數(shù)據(jù)庫必須使用而且需要先聲明才能執(zhí)行以下實例化的數(shù)據(jù)庫

     

  8. 完成,,測試吧,騷年,!

關(guān)于SQLCipher的編譯,,可參考:

1、為跨平臺數(shù)據(jù)庫引擎 SQLite 實現(xiàn)加密擴展  https://sites.google.com/site/notegainexp/sqlite/weikuapingtaishujukuyinqingsqliteshixianjiamikuozhan

2,、SQLite加密--SQLCipher  http://stormzhang./blog/2013/06/16/sqlite-encrypt/

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多