1、下载sqlcipher
https://github.com/sqlcipher/sqlcipher/tree/v4.0.1
2、编译安装
安装依赖包
# yum install -y tcl.i686 tcl.x86_64 tcl-devel.i686 tcl-devel.x86_64
# unzip sqlcipher-4.0.1.zip
# cd sqlcipher-4.0.1
# ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" --prefix=/usr/local/sqlcipher
# make && make install
遇到编译错误参考:
openssl/crypto.h:没有那个文件或目录-CSDN博客
解决:fatal error: openssl/ssl.h: No such file or directory-CSDN博客
3、配置环境变量
# vim /etc/profile
追加如下内容
export PATH=$PATH:/usr/local/sqlcipher/bin
# source /etc/profile
4、验证sqlcipher
# sqlcipher
SQLCipher version 3.26.0 2018-12-01 12:34:55
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
5、创建加密数据库
# sqlcipher wadmin.db
SQLCipher version 3.26.0 2018-12-01 12:34:55
Enter ".help" for usage hints.
sqlite> PRAGMA key = 'zhasir';
sqlite> create table mytable(id,name,age);
sqlite> insert into mytable(id,name,age) values(1,"张三","21");
sqlite> .exit
6、更改数据库密码
# sqlcipher wadmin.db
SQLCipher version 3.26.0 2018-12-01 12:34:55
Enter ".help" for usage hints.
sqlite> PRAGMA key = 'zhasir';
sqlite> select * from mytable;
1|张三|21
sqlite> PRAGMA rekey = 'zhasir0628';
sqlite> select * from mytable;
1|张三|21
sqlite>
原先的密码
PRAGMA key = 'zhasir';
新密码
PRAGMA rekey = 'zhasir0628';
7、解密已经加密的数据库
# sqlcipher wadmin.db
SQLCipher version 3.26.0 2018-12-01 12:34:55
Enter ".help" for usage hints.
sqlite> PRAGMA key = 'zhasir0628';
sqlite> select * from mytable;
1|张三|21
sqlite> PRAGMA cipher_migrate;
1
sqlite> ATTACH DATABASE 'decrypted_wadmin.db' AS decrypted_wadmin KEY '';
sqlite> SELECT sqlcipher_export('decrypted_wadmin');
sqlite> DETACH DATABASE decrypted_wadmin;
解密后新的数据库文件为decrypted_wadmin.db
8、加密已经存在的明文数据库
# sqlcipher zhasir.db
SQLCipher version 3.26.0 2018-12-01 12:34:55
Enter ".help" for usage hints.
sqlite> ATTACH DATABASE 'decrypted_zhasir.db' AS decrypted_zhasir KEY 'zhasir0628';
sqlite> SELECT sqlcipher_export('decrypted_zhasir');
sqlite> DETACH DATABASE decrypted_zhasir;
加密后新的数据库文件为decrypted_zhasir.db