sqlite3是轻量级,程序员常用的数据库,由于标准的sqlite3数据库是不带有密码功能的,任何人都能浏览数据库内的文件,因此,在某些场景下需要对sqlite数据库进行加密,例如微信的数据库就使用了 sqlite加密技术.

加密sqlite数据库的软件

  • sqleet
  • SQLite3MultipleCiphers
  • SQLCipher

以下sqleet为例

需要安装sqleet

下载安装包:https://gitee.com/mirrors/sqleet

编译 sqleet:

# UNIX
gcc sqleet.c shell.c -o sqleet -lpthread -ldl

# Windows
gcc sqleet.c shell.c -o sqleet

编译sqlite3

# UNIX
gcc -shared -Wall  -fPIC sqleet.c -lc -lpthread -ldl -o libsqlite3.so

# Windows
gcc -shared -Wall  -fPIC sqleet.c -lpthread -o sqlite3.dll
# 在windows里可以使用生成的sqlite3.dll文件替换python lib里的sqlite3.dll,需要注意备份

使用sqlite3

使用时需要LD_PRELOAD去加载

LD_PRELOAD=$(pwd)/lib/libsqlite3.so python xxx