qt加密库
① 如何才能学好C++
如果你有一定的C基础可能学起来比较容易些,但是学习C++的过程中又要尽量避免去使用一些C中的思想;平时还要多看一些高手写的代码,遇到问题多多思考,怎样才能把问题抽象化,以使自己头脑中有类的概念;最后别忘了经常上机自己调调程序,这是谁也代替不了的.
C++类库介绍
再次体现了C++保持核心语言的效率同时大力发展应用库的发展趋势!!在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较着名的大型库。
标准库
标准库中提供了C++程序的基本设施。虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被实践证明为有工业级别强度的佳作。
1、 Dinkumware C++ Library
参考站点:http://www.dinkumware.com/'>http://www.dinkumware.com/
P.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobb's程序设计杰出奖的获得者。其编写的库长期被Microsoft采用,并且最近Borland也取得了其OEM的license,在其C/C+ +的产品中采用Dinkumware的库。
2、 RogueWave Standard C++ Library
参考站点:http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/
这个库在Borland C++ Builder的早期版本中曾经被采用,后来被其他的库给替换了。笔者不推荐使用。
3、SGI STL
参考站点:http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/
SGI公司的C++标准模版库。
4、STLport
参考站点:http://www.stlport.org/'>http://www.stlport.org/
SGI STL库的跨平台可移植版本。
准标准库——Boost
Boost 库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。 Boost库由C++标准委员会库工作组成员发起,在C++社区中影响甚大,其成员已近2000人。 Boost库为我们带来了最新、最酷、最实用的技术,是不折不扣的"准"标准库。
Boost中比较有名气的有这么几个库:
Regex
正则表达式库
Spirit
LL parser framework,用C++代码直接表达EBNF
Graph
图组件和算法
Lambda
在调用的地方定义短小匿名的函数对象,很实用的functional功能
concept check
检查泛型编程中的concept
Mpl
用模板实现的元编程框架
Thread
可移植的C++多线程库
Python
把C++类和函数映射到Python之中
Pool
内存池管理
smart_ptr
5个智能指针,学习智能指针必读,一份不错的参考是来自CUJ的文章:
Smart Pointers in Boost,哦,这篇文章可以查到,CUJ是提供在线浏览的。中文版见笔者在《Dr. Dobb's Journal软件研发杂志》第7辑上的译文。
Boost 总体来说是实用价值很高,质量很高的库。并且由于其对跨平台的强调,对标准C++的强调,是编写平台无关,现代C++的开发者必备的工具。但是Boost 中也有很多是实验性质的东西,在实际的开发中实用需要谨慎。并且很多Boost中的库功能堪称对语言功能的扩展,其构造用尽精巧的手法,不要贸然的花费时间研读。Boost另外一面,比如Graph这样的库则是具有工业强度,结构良好,非常值得研读的精品代码,并且也可以放心的在产品代码中多多利用。
参考站点:http://www.boost.org'>http://www.boost.org(国内镜像:http://www.c'> http://www.c'>http://www.c'>http://www.c-view.org/tech/lib/boost/index.htm)
GUI
在众多C++的库中,GUI部分的库算是比较繁荣,也比较引人注目的。在实际开发中,GUI库的选择也是非常重要的一件事情,下面我们综述一下可选择的GUI库,各自的特点以及相关工具的支持。
1、 MFC
大名鼎鼎的微软基础类库(Microsoft Foundation Class)。大凡学过VC++的人都应该知道这个库。虽然从技术角度讲,MFC是不大漂亮的,但是它构建于Windows API 之上,能够使程序员的工作更容易,编程效率高,减少了大量在建立 Windows 程序时必须编写的代码,同时它还提供了所有一般 C++ 编程的优点,例如继承和封装。MFC 编写的程序在各个版本的Windows操作系统上是可移植的,例如,在 Windows 3.1下编写的代码可以很容易地移植到 Windows NT 或 Windows 95 上。但是在最近发展以及官方支持上日渐势微。
2、 QT
参考网站:http://www.trolltech.com/'>http://www.trolltech.com/
Qt 是Trolltech公司的一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的linux桌面环境KDE 的基础,同时它还支持Windows、Macintosh、Unix/X11等多种平台。
3、WxWindows
参考网站:http://www.wxwindows.org/'>http://www.wxwindows.org/
跨平台的GUI库。因为其类层次极像MFC,所以有文章介绍从MFC到WxWindows的代码移植以实现跨平台的功能。通过多年的开发也是一个日趋完善的 GUI库,支持同样不弱于前面两个库。并且是完全开放源代码的。新近的C++ Builder X的GUI设计器就是基于这个库的。
4、Fox
开放源代码的GUI库。作者从自己亲身的开发经验中得出了一个理想的GUI库应该是什么样子的感受出发,从而开始了对这个库的开发。有兴趣的可以尝试一下。
参考网站:http://www.fox'>http://www.fox-toolkit.org/
5、 WTL
基于ATL的一个库。因为使用了大量ATL的轻量级手法,模板等技术,在代码尺寸,以及速度优化方面做得非常到位。主要面向的使用群体是开发COM轻量级供网络下载的可视化控件的开发者。
6、 GTK
参考网站:http://gtkmm.sourceforge.net/
GTK是一个大名鼎鼎的C的开源GUI库。在Linux世界中有Gnome这样的杀手应用。而GTK就是这个库的C++封装版本。
?
库
网络通信
ACE
参考网站:http://www.c'>http://www.c'>http://www.c'>http://www.cs.wustl.e/~schmidt/ACE.html
C+ +库的代表,超重量级的网络通信开发框架。ACE自适配通信环境(Adaptive Communication Environment)是可以自由使用、开放源代码的面向对象框架,在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++ 包装外观(Wrapper Facade)和框架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步,等等。
StreamMole
参考网站:http://www.omnifarious.org/StrMod/'>http://www.omnifarious.org/StrMod/
设计用于简化编写分布式程序的库。尝试着使得编写处理异步行为的程序更容易,而不是用同步的外壳包起异步的本质。
SimpleSocket
参考网站:http://home.hetnet.nl/~lcbokkers/simsock.htm
这个类库让编写基于socket的客户/服务器程序更加容易。
A Stream Socket API for C++
参考网站:http://www.pcs.cnu.e/'>http://www.pcs.cnu.e/~dgame/sockets/socketsC++/sockets.html
又一个对Socket的封装库。
XML
Xerces
参考网站:http://xml.apache.org/xerces-c/
Xerces-C++ 是一个非常健壮的XML解析器,它提供了验证,以及SAX和DOM API。XML验证在文档类型定义(Document Type Definition,DTD)方面有很好的支持,并且在2001年12月增加了支持W3C XML Schema 的基本完整的开放标准。
XMLBooster
参考网站:http://www.xmlbooster.com/'>http://www.xmlbooster.com/
这个库通过产生特制的parser的办法极大的提高了XML解析的速度,并且能够产生相应的GUI程序来修改这个parser。在DOM和SAX两大主流XML解析办法之外提供了另外一个可行的解决方案。
Pull Parser
参考网站:http://www.extreme.indiana.e/xgws/xsoap/xpp/'>http://www.extreme.indiana.e/xgws/xsoap/xpp/
这个库采用pull方法的parser。在每个SAX的parser底层都有一个pull的parser,这个xpp把这层暴露出来直接给大家使用。在要充分考虑速度的时候值得尝试。
Xalan
参考网站:http://xml.apache.org/xalan-c/
Xalan是一个用于把XML文档转换为HTML,纯文本或者其他XML类型文档的XSLT处理器。
CMarkup
参考网站:http://www.firstobject.com/xml.htm'>http://www.firstobject.com/xml.htm
这是一种使用EDOM的XML解析器。在很多思路上面非常灵活实用。值得大家在DOM和SAX之外寻求一点灵感。
libxml++
http://libxmlplusplus.sourceforge.net/
libxml++是对着名的libxml XML解析器的C++封装版本
科学计算
Blitz++
参考网站:http://www.oonumerics.org/blitz/'>http://www.oonumerics.org/blitz/
Blitz++ 是一个高效率的数值计算函数库,它的设计目的是希望建立一套既具像C++ 一样方便,同时又比Fortran速度更快的数值计算环境。通常,用C++所写出的数值程序,比 Fortran慢20%左右,因此Blitz++正是要改掉这个缺点。方法是利用C++的template技术,程序执行甚至可以比Fortran更快。 Blitz++目前仍在发展中,对于常见的SVD,FFTs,QMRES等常见的线性代数方法并不提供,不过使用者可以很容易地利用Blitz++所提供的函数来构建。
POOMA
参考网站:http://www.c'>http://www.c'>http://www.c'>http://www.codesourcery.com/pooma/pooma
POOMA是一个免费的高性能的C++库,用于处理并行式科学计算。POOMA的面向对象设计方便了快速的程序开发,对并行机器进行了优化以达到最高的效率,方便在工业和研究环境中使用。
MTL
参考网站:http://www.osl.iu.e/research/mtl/'>http://www.osl.iu.e/research/mtl/
Matrix Template Library(MTL)是一个高性能的泛型组件库,提供了各种格式矩阵的大量线性代数方面的功能。在某些应用使用高性能编译器的情况下,比如Intel的编译器,从产生的汇编代码可以看出其与手写几乎没有两样的效能。
CGAL
参考网站:www.cgal.org
Computational Geometry Algorithms Library的目的是把在计算几何方面的大部分重要的解决方案和方法以C++库的形式提供给工业和学术界的用户。
游戏开发
Audio/Video 3D C++ Programming Library
参考网站:http://www.galacticasoftware.com/procts/av/'>http://www.galacticasoftware.com/procts/av/
AV3D是一个跨平台,高性能的C++库。主要的特性是提供3D图形,声效支持(SB,以及S3M),控制接口(键盘,鼠标和遥感),XMS。
KlayGE
参考网站:http://home.g365.net/enginedev/
国内游戏开发高手自己用C++开发的游戏引擎。KlayGE是一个开放源代码、跨平台的游戏引擎,并使用Python作脚本语言。KlayGE在LGPL协议下发行。感谢龚敏敏先生为中国游戏开发事业所做出的贡献。
OGRE
参考网站:http://www.ogre3d.org'>http://www.ogre3d.org
OGRE (面向对象的图形渲染引擎)是用C++开发的,使用灵活的面向对象3D引擎。它的目的是让开发者能更方便和直接地开发基于3D硬件设备的应用程序或游戏。引擎中的类库对更底层的系统库(如:Direct3D和OpenGL)的全部使用细节进行了抽象,并提供了基于现实世界对象的接口和其它类。
线程
C++ Threads
参考网站:http://threads.sourceforge.net/
这个库的目标是给程序员提供易于使用的类,这些类被继承以提供在Linux环境中很难看到的大量的线程方面的功能。
ZThreads
参考网站:http://zthread.sourceforge.net/
一个先进的面向对象,跨平台的C++线程和同步库。
序列化
s11n
参考网站:http://s11n.net/
一个基于STL的C++库,用于序列化POD,STL容器以及用户定义的类型。
Simple XML Persistence Library
参考网站:http://sxp.sourceforge.net/
这是一个把对象序列化为XML的轻量级的C++库。
字符串
C++ Str Library
参考网站:http://www.utilitycode.com/str/'>http://www.utilitycode.com/str/
操作字符串和字符的库,支持Windows和支持gcc的多种平台。提供高度优化的代码,并且支持多线程环境和Unicode,同时还有正则表达式的支持。
Common Text Transformation Library
参考网站:http://cttl.sourceforge.net/
这是一个解析和修改STL字符串的库。CTTL substring类可以用来比较,插入,替换以及用EBNF的语法进行解析。
GRETA
参考网站:http://research.microsoft.com/projects/greta/
这是由微软研究院的研究人员开发的处理正则表达式的库。在小型匹配的情况下有非常优秀的表现。
综合
P::Classes
参考网站:http://pclasses.com/
一个高度可移植的C++应用程序框架。当前关注类型和线程安全的signal/slot机制,i/o系统包括基于插件的网络协议透明的i/o架构,基于插件的应用程序消息日志框架,访问sql数据库的类等等。
ACDK - Artefaktur Component Development Kit
参考网站:http://acdk.sourceforge.net/
这是一个平台无关的C++组件框架,类似于java或者.NET中的框架(反射机制,线程,Unicode,废料收集,I/O,网络,实用工具,XML,等等),以及对Java, Perl, Python, TCL, Lisp, COM 和 CORBA的集成。
dlib C++ library
参考网站:http://www.c'>http://www.c'>http://www.c'>http://www.cis.ohio-state.e/~kingd/dlib/
各种各样的类的一个综合。大整数,Socket,线程,GUI,容器类,以及浏览目录的API等等。
Chilkat C++ Libraries
参考网站:http://www.c'>http://www.c'>http://www.c'>http://www.chilkatsoft.com/cpp_libraries.asp
这是提供zip,e-mail,编码,S/MIME,XML等方面的库。
C++ Portable Types Library (PTypes)
参考网站:http://www.melikyan.com/ptypes/'>http://www.melikyan.com/ptypes/
这是STL的比较简单的替代品,以及可移植的多线程和网络库。
LFC
参考网站:http://lfc.sourceforge.net/
哦,这又是一个尝试提供一切的C++库
其他库
Loki
参考网站:http://www.moderncppdesign.com/'>http: //www.moderncppdesign.com/'>http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/
哦,你可能抱怨我早该和Boost一起介绍它,一个实验性质的库。作者在loki中把C++模板的功能发挥到了极致。并且尝试把类似设计模式这样思想层面的东西通过库来提供。同时还提供了智能指针这样比较实用的功能。
ATL
ATL(Active Template Library)是一组小巧、高效、灵活的类,这些类为创建可互操作的COM组件提供了基本的设施。
FC++: The Functional C++ Library
这个库提供了一些函数式语言中才有的要素。属于用库来扩充语言的一个代表作。如果想要在OOP之外寻找另一分的乐趣,可以去看看函数式程序设计的世界。大师 Peter Norvig在 "Teach Yourself Programming in Ten Years"一文中就将函数式语言列为至少应当学习的6类编程语言之一。
FACT!
参考网站:http://www.kfa'>http://www.kfa-juelich.de/zam/FACT/start/index.html
另外一个实现函数式语言特性的库
Crypto++
提供处理密码,消息验证,单向hash,公匙加密系统等功能的免费库。
还有很多非常激动人心或者是极其实用的C++库,限于我们的水平以及文章的篇幅不能包括进来。在对于这些已经包含近来的库的介绍中,由于并不是每一个我们都使用过,所以难免有偏颇之处,请读者见谅。
资源网站
正如我们可以通过计算机历史上的重要人物了解计算机史的发展,C++相关人物的网站也可以使我们得到最有价值的参考与借鉴,下面的人物我们认为没有介绍的必要,只因下面的人物在C++领域的地位众所周知,我们只将相关的资源进行罗列以供读者学习,他们有的工作于贝尔实验室,有的工作于知名编译器厂商,有的在不断推进语言的标准化,有的为读者撰写了多部千古奇作......
Bjarne Stroustrup http://www.research.att.com/'>http://www.research.att.com/~bs/
Stanley B. Lippman
http: //blogs.msdn.com/slippman/(中文版http://www.zengyihome.net'>http: //www.zengyihome.net/slippman/index.htm'>http://www.zengyihome.net'>http://www.zengyihome.net/slippman/index.htm)
Scott Meyers http://www.aristeia.com/'>http://www.aristeia.com/
David Musser http://www.c'>http://www.c'>http://www.c'>http://www.cs.rpi.e/~musser/
Bruce Eckel http://www.bruceeckel.com'>http://www.bruceeckel.com
Nicolai M. Josuttis http://www.josuttis.com/'>http://www.josuttis.com/
Herb Sutter http://www.gotw.ca/'>http://www.gotw.ca/
Andrei Alexandrescu http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/
② 如何使用Qt加密解密类库 QCA
下载:
类库与插件:crypto拷贝到:Qt安装目录\Desktop\Qt\4.7.4\mingw\plugins\crypto
Qt feautre:feature拷贝到:Qt安装目录\Desktop\Qt\4.7.4\mingw\mkspecs\features
使用类库时,需要:
1. 在你的Qt项目文件pro中添加"CONFIG += crypto"
2. 拷贝"OpenSSL-Win32\bin\"目录下ssleay32.dll和libeay32.dll到你项目的debug或release目录
3. 拷贝"qca-2.0.3\lib"目录与"qca-ossl-2.0.0-beta3\lib"目录下qca2.dll和qca-ossl2.dll到你项目的debug或release目录
4. 在程序中使用QCA之前先使用语句QCA::Initializer init对QCA进行初始化
③ 破解链接,DB链接
针对sqlite数据库文件,进行加密。现有两种方案如下:
1.对数据库中的数据进行加密。
2.对数据库文件进行加密
1.uin怎么获取?
这个uin不是登录的帐号,而是属于内部的、程序界面上不可见的一个编号。
至于查看,最简单的方法就是登录web微信后,按F12打开网页调试工具,然后ctrl+F搜索“uin”,可以找到一串长长的URL,里面的uin就是当前登录的微信的uin。
还
有一种方法就是配置文件里,导出的微信目录下有几个cfg文件,这几个文件里有保存,不过是java的hashmap,怎么解析留给小伙伴们自己琢磨吧,
还有就是有朋友反应退出微信(后台运行不叫退出)或者注销微信后会清空这些配置信息,所以小伙伴们导出的时候记得在微信登陆状态下导出。博主自己鼓捣了一
个小程序来完成解析。
2.一个手机多个登录帐号怎么办(没有uin怎么办)
根
据博主那个解密的帖子,必须知道串号和uin。串号好说,配置中一般都有可以搞到,uin从配置中读取出来的时候只有当前登录的或者最后登录的,其他的几
个记录都没办法解密。网上某软件的解决方法是让用户一个一个登录后再导出。这个解决方法在某些情况下是不可能的,或者有时候根本不知道uin。
后来经过一个朋友的指点,博主终于发现了解决方法,可以从配置中秒读出来这个uin,这个方法暂时不透漏了,只是说明下这个异常情况。
3.串号和uin怎么都正确的怎么还是没办法解密
先
说说串号这个玩意,几个热心的朋友反馈了这个问题,经过博主测试发现不同的手机使用的不一定是IMEI,也可能是IMSI等等,而且串号也不一定是标准的
15位,可能是各种奇葩,比如输入*#06#出来的是一个,但是在微信程序里用的却是另一个非常奇葩的东西,这种情况多在双卡双待和山寨机中出现,经过严
格的测试,现在已经能做到精确识别,那几位热心的朋友也赠与了不同的代码表示鼓励。
4.计算出来了正确的key为什么无法打开数据库文件
微
信这个变态用的不是标准的sqlite数据库,那个帖子也提到了不是数据库加密,是文件的内容加密,其实是sqlcipher。官方上竟然还卖到
149$,不过倒是开放了源码,水平够高的可以自己尝试编译。google还能搜索到sqlcipher for
windows这个很好编译,不过博主不知是长相问题还是人品问题,编译出来的无法打开微信的数据库,后来改了这份代码才完成。
5.数据库文件内容是加密的,怎么还原
这
个是某些特殊情况下用到的,比如聊天记录删除了数据库中就没了,但是某个网友测试说数据库无法查询出来了,但是在文件中还是有残留的。这个情况我没测试
过,不过想想感觉有这个可能,就跟硬盘上删除了文件其实就是删除了文件的硬盘索引,内容还是残留在硬盘上可以还原一样,sqlite数据库删除的条目只是
抹去了索引,内容还存在这个文件中。
网上的都是直接打开读取,并没有解密还原这个文件成普通的sqlite数据库,使用sqlcipher
的导出方法也只是将可查询的内容导出。后来博主花了时间通读了内容加密的方式,做了一个小程序将加密的文件内容直接解密,不操作修改任何数据,非数据库转
换,直接数据流解密,完全还原出来了原始的未加密的数据库文件,大小不变,无内容损失,可以直接用sqlite admin等工具直接打开。
6.已经删除的聊天内容可以恢复么
通过上述第5的方式还原出原数据后,经测试可以恢复。sqlite的删除并不会从文件中彻底删掉,而是抹掉索引,所以可以通过扫描原始文件恢复。前提是没有重装过微信。。。
两种加密方式的优缺点,比较如下:
一、对数据库中的数据进行加密
优点:
1.实现数据加密快速,只需添加两个方法
一是:对明文数据进行加密返回密文数据
二是:对密文数据进行解密返回明文数据
2.程序无需进行太大变动,仅在对数据进行添加,修改,删除,查询时。针对指定的表字段进行修改进行加密,解密的字段即可。
不足:
1.由于对数据进行了加密。所以为了看到明文,必须密文进行解密。因此会增加处理器的消耗。因终端手机的处理能力有限,可能会出现处理数据缓慢的现象发生。
2.仅仅对数据进行了加密,还是可以看到数据表的sql语句,可能猜测到表的作用。另外,如果没有对一个表中的所有字段加密,则可以看没有加密的明文数据。
需要做的工作:
1.无需考虑平台差异性,qt,android,ios都能快速的实现。只需在每个平台上,使用各自的语言,实现同样的加密,解密算法即可。
2.需要对加密算法进行了解,选择一种加密算法,进行实现。
二、对数据库文件进行加密
优点:
1.对整个文件进行了加密,用户通过编辑器看不到任何有用的数据,用户使用sqlite browser软件也无法打开文件查看数据,保证了数据安全。
2.进行打开数据库时,使用程序sqlite3_key(db,”********”,8);即可对文件解密,对数据表的操作无需进行加密,采用明文即可。
不足:
1.需要修改sqlite的源代码,这个工作难度比较大。
2.需要对修改后的sqlite进行编译,需要对makefile有所了解,手动编写makefile文件,对源程序进行编译。因平台差异性,可能会造成某个平台无法编译生成动态链接库的可能。
3.需要对数据访问层代码进行修改,例如qt平台需要将以前对数据库操作使用的QSqlQuery类,更改为使用sqlite3.h文件中定义操作,对数据库操作。其他平台也一样,都要做这一步的修改。
4.在程序编译时,要加入使用加密的动态链接库(linux为共享库.so文件)windows平台最容易,只需将所使用的dll文件到应用程序中即可。其他平台需要实验,看如何引入库,如果编译。
需要做的工作:
1.修改sqlite源代码,追加对数据库文件进行加密的功能。
2.编译含有加密功能的程序源代码,生成各自平台需要使用的库文件。
3.将加密sqlite库文件引入各自平台中,修改数据库访问层代码。
4.进行程序的部署,测试。
三、数据库加密原理
目前主流的数据库都采用了各种安全措施,主要包括用户认证、访问控制、数据加密存储和数据库操作审计等措施。
用户认证:用户或者程序向数据库提供自己的有效身份证明,数据库鉴别用户的身份是否合法,只有合法的用户才能存取数据
库中的数据。用户认证是所有安全机制的前提,只有通过认证才能进行授权访问和审计。
访问控制:数据库管理系统为不同的用户分配不同的权限,保证用户只能进行授权的访问。目前,一些大型数据库(如Oracle 等)
都采用了基于角色的访问控制机制,即为用户授予不同的角色,如db—owner,security administrator 等,不同的角色允许对数据库执行不同的操作。
数据库加密:用户认证以及访问控制对访问数据库进行了控制,但攻击者可能会利用操作系统或数据库漏洞,或物理接触计算机,而直接接触数据库系统文件,从而可能绕过身份认证和存取控制而直接窃取或篡改数据库内容。对数据库中的数据进行加密是防范这类威胁的有效手段。
数据库操作审计:监视和记录用户对数据库所做的各种操作的安全机制,它记录并存储用户的操作,用于事后分析,以检查导致数据库现状的原因以及提供追踪攻击者的线索。数据库的备份与恢复:当数据库发生不可恢复的故障时,可以将数据库恢复到先前的某个一致性的状态。
四、SQLite 加密
由于SQLite 是开放源码的,并且在其源码中预留了加密接口,我们可以通过实现其预留的加密接口实现口令认证和数据库加密以完善其加密机制。
1.口令认证
SQLite 数据库文件是一个普通文本文件,对它的访问首先依赖于文件的访问控制。在此基础上,再增加进一步的口令认证,即在访问数据库时必须提供正确的口令,如果通过认证就可以对数据库执行创建、查询、修改、插入、删除和修改等操作;否则,不允许进一步的访问。
2.数据库加密
数据库加密有两种方式:
1)在数据库管理系(Data Base Management System,DBMS)中实现加密功能,即在从数据库中读数据和向数据库中写数据时执行加解密操作;
2)应用层加密,即在应用程序中对数据库的某些字段的值进行加密,DBMS 管理的是加密后的密文。
前者与DBMS 结合好,加密方式对用户透明,但增加了DBMS 的负载,并且需要修改DBMS的原始代码;后者则需要应用程序在写入数据前加密,在读出数据后解密,因而会增大应用程序的负载。在此,通过实现SQLite 源码中预留的加密接口,实现DBMS 级的加密。
3.使用xxx-tea 算法加密SQLite 数据库
微型加密算法(TEA)及其相关变种(XTEA,Block TEA,XXTEA) 都是分组加密算法,它们很容易被描述,实现也很简单(典型的几行代码)。
TEA 算法最初是由剑桥计算机实验室的 David Wheeler 和 Roger Needham在 1994 年设计的。该算法使用
128 位的密钥为 64 位的信息块进行加密,它需要进行 64 轮迭代,尽管作者认为 32
轮已经足够了。该算法使用了一个神秘常数δ作为倍数,它来源于黄金比率,以保证每一轮加密都不相同。但δ的精确值似乎并不重要,这里 TEA 把它定义为
δ=“(√5 – 1)231”(也就是程序中的 0×9E3779B9)。
之后TEA 算法被发现存在缺陷,作为回应,设计者提出了一个 TEA 的升级版本——XTEA(有时也被称为“tean”)。XTEA 跟
TEA 使用了相同的简单运算,但它采用了截然不同的顺序,为了阻止密钥表攻击,四个子密钥(在加密过程中,原 128 位的密钥被拆分为 4 个 32
位的子密钥)采用了一种不太正规的方式进行混合,但速度更慢了。
在跟描述 XTEA 算法的同一份报告中,还介绍了另外一种被称为 Block TEA 算法的变种,它可以对 32
位大小任意倍数的变量块进行操作。该算法将 XTEA
轮循函数依次应用于块中的每个字,并且将它附加于它的邻字。该操作重复多少轮依赖于块的大小,但至少需要 6
轮。该方法的优势在于它无需操作模式(CBC,OFB,CFB 等),密钥可直接用于信息。对于长的信息它可能比 XTEA 更有效率。
在1998 年,Markku-JuhaniSaarinen 给出了一个可有效攻击 Block TEA 算法的代码,但之后很快 David
J. Wheeler 和 Roger M.Needham 就给出了 Block TEA 算法的修订版,这个算法被称为 XXTEA。XXTEA
使用跟 Block TEA 相似的结构,但在处理块中每个字时利用了相邻字。它利用一个更复杂的 MX 函数代替了 XTEA 轮循函数,MX 使用 2
个输入量。
④ Qt如何对sqlite数据库进行加密
给SQLite数据库加密解密的方法:
1、创建空的sqlite数据库。
//数据库名的后缀你可以直接指定,甚至没有后缀都可以
//方法一:创建一个空sqlite数据库,用IO的方式
FileStream fs = File.Create(“c:\\test.db“);
//方法二:用SQLiteConnection
SQLiteConnection.CreateFile(“c:\\test.db“);
创建的数据库是个0字节的文件。
2、创建加密的空sqlite数据库
//创建一个密码为password的空的sqlite数据库
SQLiteConnection.CreateFile(“c:\\test2.db“);
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test2.db“);
SQLiteConnection cnn = new SQLiteConnection(“Data Source=D:\\test2.db“);
cnn.Open();
cnn.ChangePassword(“password“);
3、给未加密的数据库加密
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test.db“);
cnn.Open();
cnn.ChangePassword(“password“);
4、打开加密sqlite数据库
//方法一
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test2.db“);
cnn.SetPassword(“password“);
cnn.Open();
//方法二
SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder();
builder.DataSource = @”c:\test.db“;
builder.Password = @”password“;
SQLiteConnection cnn = new SQLiteConnection(builder.ConnectionString);
cnn .Open();
除了用上述方法给SQLite数据库加密以外,您还可以使用专业的文件加密软件将SQLite数据库加密。
超级加密 3000采用先进的加密算法,使你的文件和文件夹加密后,真正的达到超高的加密强度,让你的加密数据无懈可击。
超级加密3000使用起来,只要点击需要加密的文件的右键,即可轻松实现文件的加密。
解密只要双击已加密文件,输入密码即可轻松搞定。
⑤ qt怎么自动选择配置的define参数
当进入解压好的源码包后,使用./configure –help命令,可以获得相应帮助,那我们只要选取参数部分看看
-release
这个参数显而易见,就是编译Qt以发布版的模式进行,一般来说,最后系统完成后,库就应该是发布版。
-release
与上面对应,自然是调试版了,如果开发的话,可以选择它吧。
-debug-and-release
囧,上面那两个的儿子。
-developer-build
囧,我错了,开发者也可以用这个的,选了这个后,可以进行自动测试,不过还没去用过,以后可以研究研究。
-opensource
-commercial
这两个参数是指是编译是商业版本的,还是开源版本呢,视个人情况而定。
-shared
-static
这两个参数是指Qt的lib以动态还是静态编译生成,这自然也是视个人需要的。
-no-fast
-fast
这两个就很有关系,如果对自己的电脑性能很有信心,那就选第一个,那所有的工程文件都会生成到makefiles中,那编译的时间,估计可以看完变形金刚了。如果选第二个,那就加入子目录和库到makefiles,这样就能加快编译的速度。
-no-largefile
-largefile
顾名思义,支不支持大文件,一般来说,嵌入式里是不会有从超过4G的大文件的,那就选第一个吧。
-no-exceptions
-exceptions
计算机英语够好的人都该懂,这个自然就是异常情况,选则编译器支持抛出异常,否则不支持。
-no-accessibility
-accessibility
可访问性的支持,说实话,这个我真不知道有什么有用了。等哪天发现了,再来好好解释。
-no-stl
-stl
是都加入stl的支持,stl,这应该算是C++程序员应该都了解了,再不济,那也总听说过大名吧。
no-sql-<driver>
-qt-sql-<driver>
-plugin-sql-<driver>
这 个可要好好说明下,一般来说,对于一个优秀的项目开发,数据库是必不可少的,qt也自带了大多数数据库驱动,可以完美地支持数据库的使用。对于数 据库的使用,我们可以直接qt驱动编译进去,或者以插件的形式编译进去。一般来说,最简单地就是直接编译进去,但使用插件形式的可以更加灵活,针对不同的 需求将驱动插件添加。其中,<>代表的是驱动名,如果我想直接添加sqlite的支持话,形式如下:-qt-sql-sqlite。其他名称 可以自己查看参数里,有详细地介绍。
-system-sqlite
sqlite真受欢迎啊,当然那么优秀的嵌入式数据库,本人也是基本使用它来进行开发。这个参数意思是使用操作系统上的sqlite数据库,如果是不太会移植的,可以考虑直接使用qt自带的驱动。
-no-qt3support
-qt3support
这个也是简洁易懂,加不加对qt3的支持。
no-xmlpatterns
-xmlpatterns
选择对xml的支持,如果对网络无需求的话,就不用加了。
-no-phonon
-phonon
phonon是qt中处理多媒体的模块,比如放放视频什么来着,不过本人从没用过,也是根据需要选择的。
-no-phonon-backend
-phonon-backend
与上面类似,只不过这两是以插件的形式加入支持。
-no-svg
-svg
是否加入svg的支持,svg即可缩放矢量图形。
-no-webkit
-webkit
是否加入webkit的支持,这可是个好东西,不过如果跟网络不搭界的话,还是不支持吧。
-no-scripttools
-scripttools
是否加入脚本工具的支持,这对php等脚本工程师来说是个很棒的参数,但对于我这样菜鸟,就别提了。
-platform target
目标平台,这可是关键了,如果不注意的话,编译出来是x86上的话,哪怕是再牛的嵌入式工程师来也没法帮你移植到开发板上。通常,本人是linux-arm-g++。
-no-mmx
-no-3dnow
-no-sse
-no-sse2
这四个参数是针对CPU的指令集,老实说,我也不甚了解,不过,对于开发并不是影响很大。
-qtnamespace
把qt的库封装到命名空间,没啥重要用处,依个人爱好加吧。
-qtlibinfix
将所有的qt的.so库重命名,也没啥大用处。
-no-sql-<driver>
-qt-sql-<driver>
-plugin-sql-<driver>
-system-sqlite
这是相当明显的,如果这都看不出来,,囧,那您一定比我近视(本人800度近视。。)
就 是说如果是-no-XX-,就说明编译时不选择这个参数,如过是-qt-XX-,说明我们可以编译直接选用qt自带的驱动,如果是 -plugin-XX-,就是将驱动以插件形式编译,而-system-XXX,当然是使用操作系统提供的驱动,不过那就需要您自己移植了,而且有时还要 用第三方的API,就方便来说非常麻烦,但是不排除您是牛人要好好玩玩的情况。
接下来,我们接着研究配置参数。
-qt-zlib
-system-zlib
想 必经过上面的讲解,参数的意思已经很快得知,就是选择qt带的zlib库还是系统的zlib。zlib库是用于文件和资料压缩的库,对于新入嵌入式的人来 说,可能并无太大的用处,但是在以后的实际开发中,特别是对于多媒体图像图形的工程师来说,就肯定用到,因为图形图像的压缩都要使用或涉及到这个库。
-no-gif
-qt-gif
这是选择gif的支持,如果选择qt支持的话,那在用qt开发的项目中,就能显示gif图,gif也是比较普遍的图片格式了,英文全称是Graphics Interchange Format。
-no-libtiff
-qt-libtiff
-system-libtiff
tiff是一种非常复杂的光栅图像格式,并且有直接现成的C语言实现库,因此选择参数时就有了qt和system,一般来说,科学相关的开发里可能会用到。
-no-libpng
-qt-libpng
-system-libpng
png的相关参数,一种非失真性压缩位图图形文件格式,其实就是为了替代gif搞出来的,也是随实际需要来选择,当然,也有C语言实现的库。
-no-libmng
-qt-libmng
-system-libmng
大汗,大汗,这可是超级罕见的东西,QT竟然也能支持,说实话,这个参数我看来就是无视的。MNG是多帧PNG动画格式,结构极其复杂,基本没人用。
-no-libjpeg
-qt-libjpeg
-system-libjpeg
jpeg,这么有名的图片格式也不用说了,随需要选择吧。
-no-openssl
-openssl
-openssl-linked
SSL,Security Socket Layer,是一个安全传输协议,在Internet网上进行数据保护和身份确认,而OpenSSL是一个开放源代码的实现了SSL及相关加密技术的软件 包,在qt中,我们可以选择直接支持,或者OpenSSL链接支持,这个参数也是为有需要者提供的。
以上是第三方库的参数选择,紧接着就是qt附加参数,在附加参数里,我们可以指定编译的部分及加入参数来获取信息。
-make
-nomake
一 句话,说明,就说我可以这两个参数选择哪些我要编译,哪些我不需要,在 libs tools examples demos docs translations这些里你可以选择,比如examples,并不重要,可以放在-nomake后,这样编译过程中就不会编译这部分了。通过适当的 选择,我们可以大大加快编译的速度,这对配置较差的机子来说有着积极意义。
-R <string>
-l <string>
这两个参数是为编译时增加一个库的运行路径及头文件的路径,比如使用tslib作为开发触摸驱动时,我们就应使用这两个参数来指定tslib的库路径和头文件路径。
-no-rpath
-rpath
这个参数比较难于理解,简单地说,就是告诉动态加载器,到-rpath指定的目录中寻找编译时须要的动态链接库,语法就与上面的参数结合,比如 -rpath -R/home/xxxx。
-continue
这个参数的作用就是当出现错误时依然进行配置编译,换我是不会加上的。
-verbose, -v
这个参数就很眼熟,在前面的文章中有过详细介绍,简言之,就是显示配置的每一步的具体信息。
-no-optimized-qmake
-optimized-qmake
是否编译生成优化过的qmake,没啥大用,也属于可有可无的参数。
-no-nis
-nis
是否编译NIS支持,NIS(网络信息服务)是一个提供目录服务的RPC(远程过程调用)应用服务,当然没网络需要的可以再次华丽地无视。
-no-cups
-cups
是 否编译CUPS支持,是不是想问什么用啊?~~~~囧,开打印店用的。好了,不说冷笑话,CUPS给Unix/Linux用户提供了一种可靠有效 的方法来管理打印。它支持IPP,并提供了LPD,SMB(服务消息块,如配置为微软WINDOWS的打印机)、JetDirect等接口。CUPS还可 以浏览网络打印机。它的开发提供者是大名鼎鼎的“水果生产商”----苹果公司。
-no-iconv
-iconv
选择是否编译iconv支持,iconv是一个计算机程序以及一套应用程序编程接口的名称。它的作用是在多种国际编码格式之间进行文本内码的转换。这对跨语言Qt开发人员来说是很有用的,当然,考虑到中文的编码,我也选择加入支持。
-no-pch
-pch
是 否支持预编译过的头文件。预编译头就是把一个工程中的一部分代码,预先编译好放在一个文件里(通常以.pch为扩展名),这个文件就称为预编译头 文件。这些预先编译好的代码在工程开发的过程中不会被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。妈妈经常说:不懂就要学。我说:不 懂就加上。。。
no-dbus
-dbus
-dbus-linked
是否编译编译QtDBus模块。dbus是freedesktop下开源的Linux IPC通信机制,本身Linux 的IPC通信机制包括,管道(fifo),共享内存,信号量,消息队列,Socket等。在Qt中DBUS是有单独的模块的,可见其重要性。
-rece-relocations 对于额外的库链接器优化,可以减少编译中的再定位。
no-separate-debug-info
-separate-debug-info
是否存储debug信息在.debug,一般为了查错,还是选择存储吧。
-xplatform target
相当浅显的参数,即交叉编译的目标平台,一般来说根据你所要移植的目标板来确定。
-no-feature-<feature>
-feature-<feature>
选 取qte的feature编译,对于这个,我理解为特性,特性的描述你可以参考src/corelib/global/qfeatures.txt,在这 里面对于每个特性都有比较充分的讲解。对于特性地选择,也是要根据开发需求进行,如果裁剪适当,能大大为qte库瘦身。
-embedded <arch>
嵌入式平台架构选择,可以选择arm,mips,x86及generic,视你的目标平台决定吧。
-armfpa
-no-armfpa
这个参数也只是针对ARM平台的,是否加入对于基于ARM的浮点数格式的支持,通常,这个参数在编译时会自动选择。
-little-endian
-big-endian
目标平台的大端和小端选择,这应该是常识了,如果这不知道,就不要来混嵌入式了
-host-little-endian
-host-big-endia
主机平台的大端和小端选择,属于鸡肋的参数,不选择也会在配置时自动选择。
-no-freetype
-qt-freetype
-system-freetype
选择freetype,FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,在嵌入式开发中,有套可使用的字体对于中文开发至关重要,本人一般使用文泉驿字体。
-qconfig local
使用本地的qconfig配置文件来替代全部参数配置,有需要的可以去研究下,可以裁剪控件级别的参数。
-depths <list>
显示的像素位深,也是根据需要来进行吧。
-qt-decoration-<style>
-plugin-decoration-<style>
-no-decoration-<style>
这个是选择qt的样式风格,对于需要美化界面的项目来说,可以好好选择下。
-no-opengl
-opengl <api>
是否加入opengl的支持,OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。不过对于一般的开发来说,似乎有很少用到的地方。
-qt-gfx-<driver>
-plugin-gfx-<driver>
-no-gfx-<driver>
这个是相当重要的一个参数,选择QtGui的图形显示驱动,比如我们在pc上使用qvfb模拟时,就应该加入对qfvb的支持。我们可以在 linuxfb,transformed,qvfb,vnc,multiscreen这几个中选择。在平常的开发板上,选择linuxfb即可。
-qt-kbd-<driver>
-plugin-kbd-<driver>
-no-kbd-<driver>
选择键盘的驱动支持,可以支持usb键盘,串口键盘等等,也是在tty,usb ,sl5000, yopy, vr41xx ,qvfb中选择。
qt-mouse-<driver>
-plugin-mouse-<driver>
-no-mouse-<driver>
鼠标的驱动支持,一般都会选择tslib,可以完美地支持触摸屏,在pc,bus,linuxtp,yopy,vr41xx,tslib,qvfb中选择吧。
-iwmmxt
加入iWMMXt指令的编译,也只是部分XScale架构才具有。
-no-glib
-glib
是否加入glib库的支持,glib库对应即gtk库,就也是说加入后可以使用gtk。
⑥ 如何使用Qt加密解密类库 QCA
下载:
类库与插件:crypto拷贝到:Qt安装目录\Desktop\Qt\4.7.4\mingw\plugins\crypto
Qt feautre:feature拷贝到:Qt安装目录\Desktop\Qt\4.7.4\mingw\mkspecs\features
使用类库时,需要:
1. 在你的Qt项目文件pro中添加"CONFIG += crypto"
2. 拷贝"OpenSSL-Win32\bin\"目录下ssleay32.dll和libeay32.dll到你项目的debug或release目录
3. 拷贝"qca-2.0.3\lib"目录与"qca-ossl-2.0.0-beta3\lib"目录下qca2.dll和qca-ossl2.dll到你项目的debug或release目录
4. 在程序中使用QCA之前先使用语句QCA::Initializer init对QCA进行初始化
⑦ 文件后缀.B096是什么意思
各种文件后缀名与打开方式大全 扩展名 文件类型 打开方式
.aiff 声音文件 Windows media Player
.!!! Netants 暂存文件 Netants
.ani 动画鼠标
.arj 压缩文件 ARJ
.avi 电影文件 Windows media Player
.awd 传真文档
.bak 备份文件
.bas Basic 语言 Basic
.bat DOS批处理文件
.bin MAC 二进制码文件 Stuffit Expander
.bmp 图象文件 画图/看图软件
.cab 压缩文件 Winzip
.cdr Corel图画文件 Corel Draw
.chk Scandisk检察后制作的文件 可以删掉
.com DOS命令文件 自执行
.cpx Cryptapix加密图片文件 Cryptapix
.cur 静态鼠标
.dbf 数据库文件 dBase, FoxBase, Access
.dll 应用程序扩展
.doc 文档文件 Word
.dwg AutoCAD文件 AutoCAD
.eps Illustrator 图画文件 Adobe Illustrator
.exe 执行文件 自执行
.fon 字体文件
.gb 国标码文件 南极星文字处理
.get Getright 暂存文件
.gif 256色图象文件 画图/看图软件
.gz 可供UNIX或LINUX使用的压缩文件 Winzip
.hqx Macintosh 文件 Stuffit Expander
.htm 网页 浏览器
.html 网页 浏览器
.ico 图标
.ini 配置设置 笔记本或WordPad
.ipx IPX演示文件 浏览器加装IPX 插件
.jiff 图象文件 画图/看图软件
.jpeg 压缩过的图象文件 画图/看图软件
.jpg 压缩过的图象文件 画图/看图软件
.js javascript
.lnk 快捷方式连接文件 连接文件的相应程序
.m3u Winamp播放列表 Winamp
.mid 声音文件 Windows media Player
.mov Quicktime影像文件 Quick Time
.mp3 压缩音乐文件 Winamp
.mpeg 影像 Windows media Player
.mpg 影像 Windows media Player
.njx 南极星文档 南极星文字处理
.pcb 电子电路图设计文件 Protel PCB
.pdf 便携式文档格式,内含图片文字等等 Adobe Acrobat, Adobe Acrobat Reader
.pm5 PageMaker 5 排版文件 Page Maker
.ppt Power Point 文件 Microsoft Power Point
.ps GhostScript
.psd Photoshop文件 Adobe Photoshop
.pub Publisher排版文件 Microsoft Publisher
.qt Quicktime影像文件 Quick Time
.ra Real Audio声音文件 Real Audio
.ram Real Audio影像文件 Real Audio
.rar 压缩文件 Winrar
.rsf Richwin 字体文件
.sch 电子原理图设计文件 Protel Schematic
.scr 屏保文件
.sea Macintosh 启动文件
.sit 压缩 Stuffit Expander
.swf Flash动画文件 浏览器加装Macromedia flash 插件
.sys 系统文件
.tar UNIX压缩文件 Winzip
.tif 高质量图象文件 画图/看图软件
.tiff 高质量图象文件 画图/看图软件
.tmp 暂存文件 可以删掉
.ttf 字体文件
.txt 纯文本文件 笔记本或全部文字处理系统
.vbs Visual Basic 编程文件 Microsoft Viasual Basic
.viv VIVO影像文件 浏览器加装VIVO 插件
.vqf 压缩声音文件 Yamaha SoundVQ Player
.wav 未压缩的声音文件 Windows media Player
.wk1 Lotus 123 试算软件文件 Lotus 123, Excel
.wq1 Q-Pro 试算软件文件 Q-Pro, Excel
.wri Write文字文档 Word
.xls Excel 试算软件文件 Microsoft Excel
.Z UNIX压缩文件 Winzip
.zip 压缩文件 Winzip
图像文件:
bmp Windows or OS/2 Bitmap
clp Windows Clipboard
cup Dr. Halo
dib Windows or OS/2 DIB
emf Windows Enhanced Meta file
eps Encapsulated PostScript
fpx Flash Pix
gif Compuserver
iff Amiga
img GEM Paint
jpg JPEG - JFIF Compliant
lbm Deluxe Paint
mac Mac Paint
msp Macrosoft Paint
pbm Potable Bitmap
pct Macintosh Pict
pcx Zsoft Paintbrush
pic PC Paint
png Portable Network Graphics
ppm Portable Pixelmap
psd Photoshop
psp Paint Shop Pro Image
ras Sun Raster Image
raw Eaw File format
rle Windows or CompuServer RLE
sct SciTex Continuous Tone
tga Truevision Targa
tif Tagged Image file format
wmf Windows Meta File
wpg WordPefect Bitmap
⑧ 安装Hⅰ还有条件什么意思啊
1. 如果没有安装过Qcma的话,先下载QcmaDriver_winusb.exe安装CMA驱动
2. 确保你的电脑处于联网状态(以获得备份密钥),运行本工具,连接PSV(进入内容管理器并连接到PC),等待开始按钮亮起后点击开始,之后按照工具内的说明提示操作
开发说明:
1. 本工具为开源项目,地址在https://github.com/soarqin/finalhe ,最终目的是把Bitter Smile和h-encore以外的所有开源工具全部整合到一起,将操作简化到极致,想法来自yifanlu大神的帖子,不过帖子里提到的自动升级PSV到新版的功能我没整合,可能在之后的版本会补上。
2. 我在本项目里做的工作:
a. 整合并修改了psvimgtools的功能以支持原生windows(原版只能用cygwin模拟层进行编译)
b. 整合了pkg2zip的功能 (并将加密库分离出来以同时支持psvimgtools和pkg2zip)
c. 整合了libvitamtp,并参考Qcma实现了复制PSV APP的接口,以彻底去除对Qcma的依赖
d. 整合了这三个项目所有的依赖以方便在windows下进行快速项目编译
e. 以Qt为框架制作了带有多语言的安装UI
⑨ linux下使用qt远程连接windows下的mysql数据库,请问如何实现访问加密
我的Linux中虽然装了QT,但没用过它,也不太清楚,不过,你可以去查一下QT的标准库手册!
⑩ qt 加密数据库 open时间长
本地网络慢。是宽带迟缓,笔记本无线网信号差,局域无线网受阻等原因造成网络不通畅解决方法,检查本地网络联系,宽带接口,更换信号强的地方,在网络最优的情况下使用。所以qt加密数据库open时间长是因为本地网络原因。