社区
iOS
帖子详情
sqlite 加密之后的 db 能用什么 输入加密的key 之后打开?
xixi_Lee
2017-03-14 11:00:36
sqlite 加密之后的 db 能用什么 输入加密的key 之后打开?
...全文
334
1
打赏
收藏
sqlite 加密之后的 db 能用什么 输入加密的key 之后打开?
sqlite 加密之后的 db 能用什么 输入加密的key 之后打开?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
scribbler
2017-03-15
打赏
举报
回复
不明白你的意思
Qt的
sqlite
3
加密
插件
qt的
sqlite
加密
插件,资源在qt5.9.5下编译。可以直接放到qt插件目录下使用。将产生的
sqlite
cipher.dll拷贝到plugins\sqldrivers路径下。
打开
方式如下: QSqlDatabase
db
conn = QSqlDatabase::addDatabase("
SQLITE
CIPHER");
db
conn.setDatabaseName("test.
db
");
db
conn.setPassword("test"); //
db
conn.setConnectOptions("Q
SQLITE
_CREATE_
KEY
") 创建密码 //
db
conn.setConnectOptions("Q
SQLITE
_REMOVE_
KEY
") 清空密码 if (!
db
conn.open()) { qDebug() << "Can not open connection: " <<
db
conn.lastError().driverText(); }
支持
加密
的
sqlite
最新版本
sqlite
3.7.7.1
sqlite
3提供了
加密
函数,但没有实现。 本源码在
sqlite
最新版本
sqlite
3.7.7.1的基础上实现了
加密
函数。下载源码后使用vs2010
打开
工程编译,生成
sqlite
3.lib和
sqlite
3.dll。使用时,把
sqlite
3.lib和
sqlite
3.dll链接到你的工程中,在
sqlite
3_open后使用
sqlite
3_
key
(
db
,szPassword,nPasswordLen);,其他和未
加密
的库使用方法一样。
sqlite
打开
加密
数据库.zip
sqlite
打开
加密
数据库,详细使用请查看文件夹下的使用说明.txt
sqlite
3
打开
后在options-data-
Sqlite
Liabrary中选择第三项, 重新启动
sqlite
后选择数据库右键第三项enter
key
输入
密码即可
打开
Qt
Sqlite
加密
数据库驱动源代码
这是我工作了一天的成果,压缩包内包括Qt
sqlite
加密
驱动所有的代码,以及一个调用例程,还有一个
sqlite
3shell.exe工具,用于
加密
数据库命令行下的分析。 使用这个
加密
驱动很简单,只需以下3步: 1. 将驱动的代码复制到你的app文件夹(共2个文件夹) 2. 在app的pro文件中加入 include(wx
sqlite
3/wx
sqlite
3.pri) include(z
sqlite
cipherdriver/z
sqlite
cipherdriver.pri) 3. 在需要的地方加入#include "z
sqlite
cipherdriver.h",这样就可以使用Z
SQLite
CipherDriver类了,这个类是继承自QSqlDriver。所以可以传递给 QSqlDatabase::addDatabase。 详细的可以查看压缩包内源码。
之后
,main函数就可以这么使用
sqlite
的
加密
驱动: Z
SQLite
CipherDriver *driver = new Z
SQLite
CipherDriver(); QSqlDatabase
db
= QSqlDatabase::addDatabase(driver);
db
.setDatabaseName("test.
db
");
db
.setPassword("123");
db
.open(); ...
加密
驱动的稳定性没有问题,是我从Qt的开源代码中,找到
Sqlite
没
加密
的驱动部分,然后修改的。修改的内容不多,最重要的是在数据库的open时,加入了
sqlite
3_
key
的调用,实现
加密
。 底层的
加密
实现,是来自wx
sqlite
3-3.0.6。这个我修改了一个宏定义,让其
加密
方式采用了AES256,而不是原来的AES128。 例程中包括了3个实用的函数,分别用来以某一密码
打开
或创建一个数据库,判断数据库是否处于解密状态,以及修改数据库密码。
sqlite
3shell.exe跟官方提供的
sqlite
3.exe使用方法一样。只不过对于
加密
数据库,需要在对数据库进行任何操作前,先执行“PRAGMA
key
=xxx;”。通过这种方式
输入
数据库密码。检验之前的密码是否正确可以在命令行中键入“.databases”,如果没有错误提示,那就是解密成功了;如果密码错误,只能关闭
sqlite
3shell.exe,从头尝试了。 虽然这个资源,要的分数确实有点多,不过评价
之后
就能返还的。我相信这个资源值这个价值!下载后在Qt5上可以直接编译。不需要任何修改。Qt4上没试过,不承诺一定可用,但是应该没问题。
sqlite
3_DLL_sourceCode_BuildWith_Qt_VS2017.7z 数据库
加密
sqlite
3 数据库支持
加密
,分别使用QtCreator 和 VS2017 分别编译出64位 debug release DLL , (QtCreator只有动态 使用mingW 64 MSVC20147) (VS2017 有动态DLL和静态库 V14.1 ) 有工程源码,也可自行编译。 实例: QString exepath = QCoreApplication::applicationDirPath() +"/GameData.
db
"; int result=
sqlite
3_open(exepath.toLatin1().data(),&
db
); result=
sqlite
3_
key
(
db
,"abcd",4); //使用密码,第一次为设置密码 result=
sqlite
3_exec(
db
,"CREATE TABLE [MyTable] ([ID] INTEGER PRIMARY
KEY
NOT NULL,[MyText] TEXT NULL)",0,0,0); result=
sqlite
3_exec(
db
,"INSERT INTO MyTable (MyText) VALUES ('测试!')",0,0,0); result=
sqlite
3_close(
db
); 压缩包目录结构: +---
sqlite
3_QT | | .qmake.stash | |
sqlite
3.pro | |
sqlite
3.pro.user | |
sqlite
3.vcxproj | |
sqlite
3.vcxproj.filters | |
sqlite
3.vcxproj.user | | | +---mingw_x64 | | +---debug | | | lib
sqlite
3.a | | |
sqlite
3.dll | | |
sqlite
3.h | | |
sqlite
3userauth.h | | | | | \---release | | lib
sqlite
3.a | |
sqlite
3.dll | |
sqlite
3.h | |
sqlite
3userauth.h | | | +---msvc2017_x64 | | +---debug | | |
sqlite
3.dll | | |
sqlite
3.h | | |
sqlite
3.p
db
| | |
sqlite
3userauth.h | | | | | \---release | |
sqlite
3.dll | |
sqlite
3.h | |
sqlite
3userauth.h | | | \---
sqlite
3 | \---secure | \---src | \---
sqlite
3_VS2017 |
sqlite
3.sln |
sqlite
3.vcxproj |
sqlite
3.vcxproj.filters |
sqlite
3.vcxproj.user | +---msvc2017_x64 | +---debug | | +---dyn | | |
sqlite
3.dll | | |
sqlite
3.h | | |
sqlite
3.p
db
| | |
sqlite
3userauth.h | | | | | \---static | |
sqlite
3.h | |
sqlite
3.lib | |
sqlite
3.p
db
| |
sqlite
3userauth.h | | | \---release |
iOS
29,031
社区成员
12,466
社区内容
发帖
与我相关
我的任务
iOS
主要讨论与iOS相关的软件和技术
复制链接
扫一扫
分享
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章