wxSqlite3加密库单独使用

wxSqlite3加密库单独使用Sqlite3启用加密功能下载wxsqlite3编译添加文件至工程添加预处理器使用加密解密删除密码后记资源项目中需要对sqlite的db文件进行加密,其中开源包括wxsqlite3等,但是又不需要完整的wxsqlit

项目中需要对sqlite的db文件进行加密,其中开源包括wxsqlite3等,但是又不需要完整的wxsqlite3,只需要其中的sqlite3的加密功能。

下载wxsqlite3

下载地址:https://sourceforge.net/projects/wxsqlite/?source=directory
这里吴选择的是wxsqlite3-3.1.0,因为高版本wxsqlite将sqlite整合了。资源我稍后会上传。

编译

我使用的是vs2015+qt5.8

添加文件至工程

将wxsqlite3-3.1.0\sqlite3\secure\src下的文件全部拷贝到工程目录,如下图
sqlite3机密库源码
将sqlite3.h和sqlite3secure.c添加至工程中,入下图所示
在这里插入图片描述

添加预处理器

添加预处理器SQLITE_HAS_CODEC

使用

在调用sqlite3_open之后调用加解密方法,来对数据库文件进行操作

加密

调用sqlite3_rekey对未加密的db文件进行加密

int nRet = sqlite3_rekey(pDb, strKey.c_str(), strKey.length()); 

参数1:pDb 数据库句柄,通过sqlite3_open得到
参数2:strKey 密码,自己设置
参数3:密码长度

解密

调用sqlite3_key对加密的db文件进行解密

int nRet = sqlite3_key(pDb, strKey.c_str(), strKey.length()); 

参数1:pDb 数据库句柄,通过sqlite3_open得到
参数2:strKey 密码,自己设置
参数3:密码长度

删除密码

先调用sqlite3_key对加密的db文件进行解密
调用sqlite3_rekey对加密的db文件进行解密,因为这里是删除密码,所以通过设置空密码来实现

int nRet = sqlite3_rekey(pDb, nullptr, 0); 

后记

这里我没有单独编译成库文件来使用,小伙伴也可以试试封装成库文件来使用。
还有一点,有的小伙伴不想使用wxsqlite3-3.1.0中自带的sqlite3版本,或者说当前使用的sqlit3版本不一致,可以只使用wxsqlite3中加密库相关的代码。我就是这样干的。我现在使用的sqlite3是3.7的版本。

资源

sqlite3单独编译
这里面包含了wxsqlite3-3.1.0源码和我自己测试的小demo

今天的文章
wxSqlite3加密库单独使用分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/60306.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注