QCA是否支持SHA-2散列?

时间:2012-08-12 10:02:19

标签: qt hash cryptography shared-libraries

QCA(Qt Cryptographic Architecture)是否支持SHA-2(特别是SHA256)?如果不是:Qt中是否有用于SHA-2散列的插件?

请告诉我一些配置细节。

1 个答案:

答案 0 :(得分: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!");

对于非常高安全性的项目(您需要软件证书或专业代码审查),您还可以使用 Crypto ++ ,这是一个经过认证的库,提供开箱即用的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文件条件库包含来完成。