wxsqlite3 加解密


说明:
1. 到相应的网站上下载相应的包
 http://sourceforge.net/projects/wxcode/files/Components/wxSQLite3/
 我当前用的是:wxsqlite3-3.0.0.1
2. 打开sqlite3.h (wxsqlite3-3.0.0.1\wxsqlite3-3.0.0\sqlite3\include\sqlite3.h),并在其最前面添加代码:此宏是启用加密
 
 #ifndef SQLITE_HAS_CODEC
 #define SQLITE_HAS_CODEC
 #endif
3. 引入wxsqlite3-3.0.0.1\wxsqlite3-3.0.0\sqlite3\secure\aes128\目录下的sqlite3.lib

使用起来也很简单,首先打开数据库 sqlite3_open,然后在操作数据库之前执行 sqlite3_key 后就可进行数据库操作,否则会返回错误。

sqlite3_key是输入密钥,如果数据库已加密必须先执行此函数并输入正确密钥才能进行操作,如果数据库没有加密,执行此函数后进行数据库操作反而会出现“此数据库已加密或不是一个数据库文件”的错误。

int sqlite3_key( sqlite3 *db, const void *pKey, int nKey),db 是指定数据库,pKey 是密钥,nKey 是密钥长度。例:sqlite3_key( db, "abc", 3);

sqlite3_rekey是变更密钥或给没有加密 的数据库添加密钥或清空密钥,变更密钥或清空密钥前必须先正确执行 sqlite3_key。在正确执行 sqlite3_rekey 之后在 sqlite3_close 关闭数据库之前可以正常操作数据库,不需要再执行 sqlite3_key。

int sqlite3_rekey( sqlite3 *db, const void *pKey, int nKey),参数同上。

清空密钥为 sqlite3_rekey( db, NULL, 0)。

你可能感兴趣的:(wxsqlite3 加解密)