• 11121阅读
  • 23回复

[下载]Qt全版本 加密sqlite插件共享! [复制链接]

上一主题 下一主题
离线angelus
 

只看楼主 倒序阅读 楼主  发表于: 2013-04-11
— 本帖被 XChinux 执行加亮操作(2013-04-26) —
更新一下帖子
大家可以去下载这个加密插件,基本上已经稳定了
我测试过5.9 编译过,接近完美,测试使用环境,win7 , mac , android , ios
接近完美的意思是:
ios设置会稍微麻烦一点,需要手动去代码里边设置和加载,不过完美使用,
可以在issues标签的closed中查看看下配置方法
该BUG属于我提交和解决的,有什么问题可以回帖!

https://github.com/devbean/QtCipherSqlitePlugin/tree/master


//-------------------------------------------------------------------------------一下为老贴内容
今天编译了下sqlite的加密插件,自己试验,可以使用!
这个插件来自于QtCipherSqlitePlugin项目,支持Qt5.
Qt自带的sqlite创建的数据文件时明文的,可以直接用文本打开查看,这让人很恼火。

这个是加密前的截图:

虽然排版很奇怪,但里边的数据是可以直接看到的。

这个是加密后的截图:

需要的朋友可以下载。
这里给出源代码和编译后的dll文件!

源代码 sqlitecipher_src.rar (1141 K) 下载次数:48
DLL sqlitecipher_dll.rar (274 K) 下载次数:48

使用方法:
this->ldb=new QSqlDatabase(QSqlDatabase::addDatabase("SQLITECIPHER","ldb"));    //创建数据库
在第一个参数中使用"SQLITECIPHER"代替平时的"SQLITE".
ldb->setDatabaseName("ldb.db");       //设置数据库名称。
ldb->open("angelus","123456");          //加密数据库,如果不存在就创建ldb.db并用123456作为密码。
打开数据的open函数加入参数,第一个为name,第二个为密码;
第一个参数可以为空,因为它没有用处,第二个为密码,以后打开用此密码创建的xx.db都需要使用这个密码才能操作。
这个说下需要注意的。如果打开时候输入密码错误,是可以打开数据库的,但你的查询,新建,插入,更新,都是会失败的。

好了,基本就是这样了,如果有什么问题,可以留言!









离线jdwx

只看该作者 1楼 发表于: 2013-04-11
回 楼主(angelus) 的帖子
这个还不错,sqlite的数据库确实很容易看明白,建表的SQL语句一眼就能看到。
不知道对速度有没有影响?
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线toby520

只看该作者 2楼 发表于: 2013-04-11
我们目前的sqlite数据库都没有进行加密,这个比较可悲,有了这个应该没有啥问题
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线toby520

只看该作者 3楼 发表于: 2013-04-11
Re:回 楼主(angelus) 的帖子
引用第1楼jdwx于2013-04-11 13:48发表的 回 楼主(angelus) 的帖子 :
这个还不错,sqlite的数据库确实很容易看明白,建表的SQL语句一眼就能看到。
不知道对速度有没有影响?


   jdwx你知道这个插件怎么使用么?以前没接触过
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线jdwx

只看该作者 4楼 发表于: 2013-04-11
回 3楼(toby520) 的帖子
还没来得及实验,
看楼主的介绍:
this->ldb=new QSqlDatabase(QSqlDatabase::addDatabase("SQLITECIPHER","ldb"));    //创建数据库

应该把dll放进/plugins/sqldrivers这里,和原来的sqlite用起来没区别。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线toby520

只看该作者 5楼 发表于: 2013-04-11
回 4楼(jdwx) 的帖子
主要针对mingw版本的么?我用qt vs编译出来放到sqldriver下面,报错了 QSqlDatabase: SQLITECIPHER driver not loaded
QSqlDatabase: available drivers: QSQLITE,不知道还要设置哪些东东,我看到一篇文章 http://www.qtbcw.com/forum.php?mod=viewthread&tid=5    讲的就是楼主说的那个。
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线angelus

只看该作者 6楼 发表于: 2013-04-11
使用很简单,基本上没有区别,只是有几处需要更改就OK了!
离线jdwx

只看该作者 7楼 发表于: 2013-04-11
("QSQLITE", "QODBC", "QODBC3", "SQLITECIPHER") 添加进Qt了,接着试试效果。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线toby520

只看该作者 8楼 发表于: 2013-04-11
引用第6楼angelus于2013-04-11 15:01发表的  :
使用很简单,基本上没有区别,只是有几处需要更改就OK了!

  发现一个问题,加密后的db,使用加密前的密码无法打开?
  需要输入密码见截图:
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线jdwx

只看该作者 9楼 发表于: 2013-04-11
效果不错,上个图:


用二进制打开:




发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线圣域天子

只看该作者 10楼 发表于: 2013-04-11
我给大家拨盆冷水:
我大概从三年前发布的SQLite就是加密的,截止到目前为止有四名用户说数据库报密钥错误无法使用,

经过我的检查的确是报密钥错误。原本密钥是我单方面保存的,现在我也解不开了。

用户都说硬盘没有故障,运行过程中没有掉电等意外情况

所以至少不知道是什么原因导致的密钥错误 。

大家加密还请谨慎,我目前已经解除了所有使用SQLite的软件的加密。
离线toby520

只看该作者 11楼 发表于: 2013-04-11
引用第10楼圣域天子于2013-04-11 16:15发表的  :
我给大家拨盆冷水:
我大概从三年前发布的SQLite就是加密的,截止到目前为止有四名用户说数据库报密钥错误无法使用,
经过我的检查的确是报密钥错误。原本密钥是我单方面保存的,现在我也解不开了。
.......

  我刚才就是这样情况,数据库文件在知道密码的情况下也打不开,对于用户不需要只要密钥来说 我不知道 这是不是好事情?
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线hehui

只看该作者 12楼 发表于: 2013-05-01
引用第10楼圣域天子于2013-04-11 16:15发表的  :
我给大家拨盆冷水:
我大概从三年前发布的SQLite就是加密的,截止到目前为止有四名用户说数据库报密钥错误无法使用,
经过我的检查的确是报密钥错误。原本密钥是我单方面保存的,现在我也解不开了。
.......


其实可以试试FireBird!
有单机和网络两种。

另外可以试试wxWidgets提供的SQLite加密模块,不过要改Qt的工程文件。
离线zck0911

只看该作者 13楼 发表于: 2017-07-19
QSqlDatabase: SQLITECIPHER driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
提示这个怎么解决,
离线angelus

只看该作者 14楼 发表于: 2017-07-19
回 zck0911 的帖子
zck0911:QSqlDatabase: SQLITECIPHER driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
提示这个怎么解决, (2017-07-19 09:29) 

有新的开源加密项目,你在论坛搜索下,我记得我有留过言!
离线stlcours

只看该作者 15楼 发表于: 2017-07-19
回 圣域天子 的帖子
圣域天子:我给大家拨盆冷水:
我大概从三年前发布的SQLite就是加密的,截止到目前为止有四名用户说数据库报密钥错误无法使用,
经过我的检查的确是报密钥错误。原本密钥是我单方面保存的,现在我也解不开了。
....... (2013-04-11 16:15) 

sqlite是单文件数据库,稍微损坏一点就束手无策啊。客户的精力在他们的业务上,他们一般都不太懂电脑的,他们说电脑没问题就没有问题了啊?我倒宁愿相信是客户的问题,而不是这个加密模块的问题。
离线stlcours

只看该作者 16楼 发表于: 2017-07-19
再说腾讯的日志,就是sqlite加密的,他们都给8.5亿用户使用了,我们就不行?
离线仗剑天涯

只看该作者 17楼 发表于: 2017-07-19
离线angelus

只看该作者 18楼 发表于: 2017-07-24
帖子已经更新了,没想到被挖出来5.0.2时候发的帖子
离线liuchangyin

只看该作者 19楼 发表于: 2017-07-30
离线stlcours

只看该作者 20楼 发表于: 2017-08-01
回 angelus 的帖子
angelus:帖子已经更新了,没想到被挖出来5.0.2时候发的帖子 (2017-07-24 17:44) 

帖子更新了什么呢?至少源程序没有被更新。
离线angelus

只看该作者 21楼 发表于: 2017-08-01
回 stlcours 的帖子
stlcours:帖子更新了什么呢?至少源程序没有被更新。 (2017-08-01 15:37) 

加密的软件换了,第一行就有写
离线stlcours

只看该作者 22楼 发表于: 2017-08-01
回 angelus 的帖子
angelus:加密的软件换了,第一行就有写 (2017-08-01 16:50) 

谢谢。还是想再问的仔细一点,也就是说,现在应该使用
https://github.com/devbean/QtCipherSqlitePlugin/tree/master
里的代码去加密,而不是使用你帖子提供的附件,是这样吗?

在Windows下使用可以静态编译吗?这样就可以去掉那个烦人的DLL了。
另外您自己可有信心将它用于实际项目?我的程序运行,全依赖于sqlite里的数据,所以打算再观察一段时间。
离线angelus

只看该作者 23楼 发表于: 2017-08-12
回 stlcours 的帖子
stlcours:谢谢。还是想再问的仔细一点,也就是说,现在应该使用
https://github.com/devbean/QtCipherSqlitePlugin/tree/master
里的代码去加密,而不是使用你帖子提供的附件,是这样吗?
....... (2017-08-01 18:38) 

该帖的作者最近会合并到稳定版本,我用它加密的游戏数据,没有出错过,至少现在还没问题,所以理论上是可信任的!
快速回复
限100 字节
 
上一个 下一个