查看完整版本: [-- Qt全版本 加密sqlite插件共享! --]

QTCN开发网 -> Qt安装与发布 -> Qt全版本 加密sqlite插件共享! [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

angelus 2013-04-11 13:21

Qt全版本 加密sqlite插件共享!

更新一下帖子
大家可以去下载这个加密插件,基本上已经稳定了
我测试过5.9 编译过,接近完美,测试使用环境,win7 , mac , android , ios
接近完美的意思是:
ios设置会稍微麻烦一点,需要手动去代码里边设置和加载,不过完美使用,
可以在issues标签的closed中查看看下配置方法
该BUG属于我提交和解决的,有什么问题可以回帖!

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


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

这个是加密前的截图:
[attachment=10119]
虽然排版很奇怪,但里边的数据是可以直接看到的。

这个是加密后的截图:
[attachment=10118]
需要的朋友可以下载。
这里给出源代码和编译后的dll文件!

[attachment=10116]
[attachment=10117]

使用方法:
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 2013-04-11 13:48
这个还不错,sqlite的数据库确实很容易看明白,建表的SQL语句一眼就能看到。
不知道对速度有没有影响?

toby520 2013-04-11 13:49
我们目前的sqlite数据库都没有进行加密,这个比较可悲,有了这个应该没有啥问题

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


   jdwx你知道这个插件怎么使用么?以前没接触过

jdwx 2013-04-11 14:50
还没来得及实验,
看楼主的介绍:
this->ldb=new QSqlDatabase(QSqlDatabase::addDatabase("SQLITECIPHER","ldb"));    //创建数据库

应该把dll放进/plugins/sqldrivers这里,和原来的sqlite用起来没区别。

toby520 2013-04-11 14:57
主要针对mingw版本的么?我用qt vs编译出来放到sqldriver下面,报错了 QSqlDatabase: SQLITECIPHER driver not loaded
QSqlDatabase: available drivers: QSQLITE,不知道还要设置哪些东东,我看到一篇文章 http://www.qtbcw.com/forum.php?mod=viewthread&tid=5    讲的就是楼主说的那个。

angelus 2013-04-11 15:01
使用很简单,基本上没有区别,只是有几处需要更改就OK了!

jdwx 2013-04-11 15:17
("QSQLITE", "QODBC", "QODBC3", "SQLITECIPHER") 添加进Qt了,接着试试效果。

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

  发现一个问题,加密后的db,使用加密前的密码无法打开?
  需要输入密码见截图:[attachment=10122]

jdwx 2013-04-11 15:24
效果不错,上个图:
[attachment=10123]

用二进制打开:
[attachment=10124]




圣域天子 2013-04-11 16:15
我给大家拨盆冷水:
我大概从三年前发布的SQLite就是加密的,截止到目前为止有四名用户说数据库报密钥错误无法使用,

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

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

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

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

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

  我刚才就是这样情况,数据库文件在知道密码的情况下也打不开,对于用户不需要只要密钥来说 我不知道 这是不是好事情?

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


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

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

zck0911 2017-07-19 09:29
QSqlDatabase: SQLITECIPHER driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
提示这个怎么解决,

angelus 2017-07-19 14:53
zck0911:QSqlDatabase: SQLITECIPHER driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
提示这个怎么解决, (2017-07-19 09:29) 

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

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

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

stlcours 2017-07-19 20:34
再说腾讯的日志,就是sqlite加密的,他们都给8.5亿用户使用了,我们就不行?

仗剑天涯 2017-07-19 21:14

angelus 2017-07-24 17:44
帖子已经更新了,没想到被挖出来5.0.2时候发的帖子

liuchangyin 2017-07-30 10:14

stlcours 2017-08-01 15:37
angelus:帖子已经更新了,没想到被挖出来5.0.2时候发的帖子 (2017-07-24 17:44) 

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

angelus 2017-08-01 16:50
stlcours:帖子更新了什么呢?至少源程序没有被更新。 (2017-08-01 15:37) 

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

stlcours 2017-08-01 18:38
angelus:加密的软件换了,第一行就有写 (2017-08-01 16:50) 

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

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

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

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


查看完整版本: [-- Qt全版本 加密sqlite插件共享! --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled