由于原有sqlite3没有加密功能,如果库文件暴露出去,就可以直接查看,所以这里就实现了sqlite3数据库加密功能。
这里使用sqlcipher工具实现该加密功能,是对库文件加密而非是对具体数据加密
首先是源码的下载
下载地址:https://github.com/sqlcipher/sqlcipher
这里还依赖于openssl进行加密,所以要下载该源码包
之后对源码进行编译:
1.编译
1.openssl编译
./config
make
2.sqlcipher编译
首先是./configure进行配置./configure –enable-tempstore=yes CFLAGS=”-DSQLITE_HAS_CODEC” LDFLAGS=”-lcrypto” –prefix=$PWD/install,之后进行make这样就编译完成,编译完成后生成了可执行文件sqlcipher,以及库文件,可执行文件可以供我们像shelle那样进行操作,库文件提供了C接口可以供我们在程序中连接引用之中的接口。
2.由sqlite3的非加密文件生成加密文件
如何用shell命令将一个非加密文件生成加密文件,比如我们有非加密库文件film.db,依据这个文件生成加密文件filmen.db
1.首先将非加密文件film.db的数据库导出来到output.sql中,可以用如下的shell语句实现:
sqlite3 film.db “.dump” > output.sql或是
sqlite3 film.db “.output output.sql” “.dump”
2.读取之前导出的数据