Android數據庫加密之sqlciher方案

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。html

轉載請代表出處:http://www.cnblogs.com/cavalier-/p/6241964.htmljava

前言

你們好,我是Cavalier,此次和你們分享的主題是數據庫加密。當今移動互聯網數據安全相當重要,而數據庫是Android經常使用的數據持久化方案,可是原生的sqLite並不支持密碼加密,目前經常使用的數據庫加密方式大部分是字段加密,或者是內容加密。這裏特別推薦使用sqlcipher的數據庫加密方案,使用與原生一致,(sqlcipher-android的Github地址請戳),下面分享一下源碼編譯的過程和遇到的錯誤。android

編譯前奏

博主當前環境是:
Mac ox 10.12.2 (16C67)
Java 1.8.0_112
Ant 1.9.8
Android NDK 12.1.3345770git

下載源碼

(sqlcipher-android的Github地址請戳)github

從上面提供的地址中克隆下來(tip:我嘗試了直接下載源碼ZIP包,可是在後面的編譯中會報錯,報錯內容看文後)
git clone https://github.com/sqlcipher/android-database-sqlcipher.git
從github克隆源碼很是慢...
克隆下來後,就能夠直接運行make命令了
make init
執行完後再執行make就行了
make
當make執行完後,會在目錄下生成libs目錄,裏面就有了我們須要的jar包和so動態庫sql

遇到的問題

1.make init 沒問題,可是執行make時報以下錯誤:

ant relese
permission denied

這個錯誤,我嘗試了sudo -s命令發現沒效果,嘗試修改了源文件的權限也不行,可是我嘗試了which ant 發現報了not fond,修復方案就是從Apache下載一個最新版本的Ant,解壓後添加進系統變量
open ~/.bash_profile
打開後添加本身的路徑
export ANT_HOME=(此處填寫你剛下載的Ant絕對路徑)
export PATH=${ANT_HOME}/bin:$PATH
配置環境變量
source ~/.bash_profile
這時輸入
ant -version數據庫

若是輸出具體版本號即爲配置成功,配置ant成功後便可以從新make一下就行了apache

2.ant也肯定安裝沒問題,可是make仍是報錯,錯誤以下:

Unable to locate tools.jar

這時就須要檢查一下環境變量中JAVA_HOME和CLASSPATH的配置,正確的配置應該以下安全

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home"
export PATH=${JAVA_HOME}/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH

從新配置後就可嘗試make一下便可成功編譯bash

3.檢查過JAVA_HOME沒問題,ANT_HOME也沒問題,可是仍是編譯不成功,錯誤以下:

Buildfile: build.xml does not exist!
Build failed
make: *** [build-java] Error 1

這個就說明源碼中是沒有帶build.xml的,這時我們能夠經過以下命令生成一個

android update project --target 1 --path ./ --subprojects

這時會在源碼目錄中多出一個build.xml,從新make一下就行了

sqlcipher的使用

如原生的數據庫操做一致

特別注意事項

因爲Android平臺4.0到7.0跨度太大,以致於若是項目是用舊的動態庫會報一個警告,且這個警告是不可控的,對用戶體驗很是很差。推薦使用當前最新版本便可

總結

但願你們經過如上簡單的介紹後,對sqlcipher源碼編譯沒有問題。

以上純屬我的經驗,喜歡的請點個推薦哦,若有錯誤請指出,謝謝你們,。

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。

轉載請代表出處:http://www.cnblogs.com/cavalier-/p/6241964.html

相關文章
相關標籤/搜索