2012-08-12 48 views
3

QCA(Qt Cryptographic Architecture)是否支持SHA-2(特別是SHA256)?如果沒有:在Qt中是否有插件用於SHA-2散列?QCA是否支持SHA-2散列?

請讓我知道一些配置細節。

回答

2

是它,加入OSSL提供商插件

http://delta.affinix.com/qca/

見表格在頁面的底部。

如何與這個供應商的插件安裝,包括QCA的指南可以在這裏找到(對於Linux和Windows/mingw32的環境):

http://www.essentialunix.org/index.php?option=com_content&view=article&id=48:qcatutorial&catid=34:qttutorials&Itemid=53

然後,您可以在運行期間檢查一下你的

QCA::init(); 
if(!QCA::isSupported("sha2")) 
    qFatal("SHA-2 not supported!"); 

對於非常高的安全項目(您需要一個軟件證書或:使用此代碼段的應用專業代碼審查),你也可以使用加密+,這是提供SHA-2開箱的認證的程序庫:

http://www.cryptopp.com/

對於認證的版本,請參見FIPS 140-2一致性在頁面底部。請注意,認證版本僅適用於Windows。


注意的Qt 5具有SHA-2內置:

http://doc.qt.io/qt-5/qcryptographichash.html#Algorithm-enum

我想你想你的應用程序是Qt的4兼容。但是,如果您的應用程序使用Qt5編譯,您可以考慮使用內置的SHA-2實現,這可以使用預處理器條件和.pro文件條件庫包含來完成。

+0

非常感謝您的信息..我已經嘗試過ossl插件,但可能是我犯了錯誤,沒有讓自己連續運行。我已經在qt中成功配置了。請告訴我如何使用mingw toolchain在Qt中配置ossl? – muktoshuvro 2012-08-12 13:22:57

+0

我的親。文件與QCA QT是這樣的.. QT + =核心 QT - = GUI TARGET =哈希 CONFIG + =控制檯 CONFIG - = app_bundle 模板=應用 SOURCES + = main.cpp中 LIBS + = -LC:/Qt/hash/qca-2.0.3/lib -lqca2 INCLUDEPATH + = 「F:/QtSDK/qca-2.0.3/include/QtCrypto」 CONFIG + =加密 – muktoshuvro 2012-08-12 13:23:43

+0

沒有符合你將QCA的兩個DLL文件和OSSL插件放在你的應用程序目錄中?什麼是錯誤信息?你的.pro文件對我來說看起來是正確的,因爲我猜你不需要寫任何東西來包含OSSL提供者插件到這個文件中。 (提供程序在運行時加載。)另外請注意,我更新了答案,並在運行時包含一段代碼來檢查SHA-2的可用性。一旦你成功的運行了應用程序,如果找到OSSL DLL,你應該從'QCA :: isSupported(「sha2」)'得到'true'。 – leemes 2012-08-12 13:29:49