用Sqlcipher给现有的SQLite数据库加密

android项目资源文件的破译非常简单,出于安全的考虑,要对sqlite文件进行加密处理,用到了SQLCipher,他有收费版和开源版,这里选择开源版。
PS:网上的Sqlcipher版本大多是需要编译的版本,使用起来非常不方便,这里推荐一款windows下直接使用的版本,下载链接:
http://download.csdn.net/detail/cx118118/9676383

E:\sqlciper\bin>sqlcipher-shell64.exe info.db
SQLCipher version 3.8.0.2 2013-09-03 17:11:13
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .table
info

这里通过Sqlcipher打开info.db数据库可以正常打开,也能够查看数据。

加密这个数据库:

第一步,导出数据库内容到sql文件中

sqlite> .output my.sql  ##备份原始数据
sqlite> .dump
sqlite> .exit

第二步,创建带密码的加密数据库

E:\sqlciper\bin>sqlcipher-shell64.exe e_info.db
SQLCipher version 3.8.0.2 2013-09-03 17:11:13
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> PRAGMA key='xxxx';  ##设置密码

第三步,将sql文件导入到加密数据库中

sqlite> .read my.sql    ##导入原始数据

sqlite> .exit

此时,数据库e_info.db已经被加密,通过SQLite3无法打开,只有通过Sqlcipher输入密码方可打开。

你可能感兴趣的:(Android开发笔记)