gto250 发表于 2010-9-26 22:32:32

关于加密版的sqlite3(wxSQLite3)的使用问题

本帖最后由 gto250 于 2010-9-27 06:29 编辑

我在网上下载了wxSQLite3,可以对SQLite3数据库加密,也就是SQLite3的加强版

它的说明如下:
首先打开数据库 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)。

按照说明,我写了如下的fuc
Func sqlite3_key($f,$str,$num)
        DllCall($g_hDll_SQLite, "none:cdecl", "sqlite3_rekey", "str", $f,"null",$str,"int",$num)
EndFunc

但是并没有加密成功。
请各位兄弟看看!


页: [1]
查看完整版本: 关于加密版的sqlite3(wxSQLite3)的使用问题