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時間長是因為本地網路原因。