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

相关文章
相关标签/搜索