sqlite 加密。

3 篇文章 0 订阅
1 篇文章 0 订阅

好久没写了,草稿箱存放了好多写了一半的文章没发。发现写博客也是个不能拖的事情...   慢慢的会把它们全放出来的,关太久了会闷死吧大概.

正题

sqlite加密是采用的一个第三方开源库wxSqlite。 https://sourceforge.net/projects/wxcode/files/Components/wxSQLite3/  下载连接在此,打开有点慢可尝试翻墙免费的有lantern等。

  解压后会得到这样的目录

然后把它拷贝到 也就是你SQLITE 所在的目录(也可以是其它目录下),这里我拿COCOS2D-LUA 的一个项目做例子。 然后在XCODE 工程中添加其引用,只引用 sqlite3secure.c 和 sqlite3.h 。 (强调下是引用其它的不删除文件哈还是留着)。

添加引用方法如图:然后选你要添加的 点击ADD 然后说说怎么删除引用(不是删除文件),选中右键选DELETE 然后出来这个界面选Remove Reference 就OK了。到这里添加工作完了。

接下来开始修改吧。修改 lsqlite3.c 中的图中方法。这个是我根据我们需求改过的还有些部分没贴出来别乱改哈。

你们应该改成这个

static int lsqlite_do_open(lua_State *L, const char *filename,) {
    sdb *db = newdb(L); /* create and leave in stack */
    if (sqlite3_open(filename, &db->db) == SQLITE_OK) {
            if(sqlite3_key(db->db,“XXXXX”,strlen(“XXXXX”))!=SQLITE_OK)
                return 0;
        /* database handle already in the stack - return it */
        return 1;
    }

    /* failed to open database */
    lua_pushnil(L);                             /* push nil */
    lua_pushnumber(L, sqlite3_errcode(db->db));
    lua_pushstring(L, sqlite3_errmsg(db->db));  /* push error message */

    /* clean things up */
    cleanupdb(L, db);

    /* return */
    return 3;
}
这个样子。
sqlite3_key(db->db,“XXXXX”,strlen(“XXXXX”)
第二个参数是你数据库的密码,最后一个参数是密码长度。

最后一步,最后一步。号外号外

添加预编译宏:位置如下:

 打开这两个宏  SQLITE_HAS_CODEC   CODEC_TYPE_AES256 

到此加密写完了。就是这么简单.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值