【发布时间】:2012-08-12 10:02:19
【问题描述】:
QCA(Qt 加密架构)是否支持 SHA-2(尤其是 SHA256)?如果没有:Qt 中是否有用于 SHA-2 散列的插件?
请告诉我一些配置细节。
【问题讨论】:
标签: qt hash cryptography shared-libraries
QCA(Qt 加密架构)是否支持 SHA-2(尤其是 SHA256)?如果没有:Qt 中是否有用于 SHA-2 散列的插件?
请告诉我一些配置细节。
【问题讨论】:
标签: qt hash cryptography shared-libraries
是的,通过添加 OSSL 提供程序插件:
请参阅页面底部的表格。
可以在此处找到有关如何使用此提供程序插件安装和包含 QCA 的教程(适用于 Linux 和 Windows/mingw32 环境):
然后您可以在应用程序运行时使用此代码 sn-p 进行检查:
QCA::init();
if(!QCA::isSupported("sha2"))
qFatal("SHA-2 not supported!");
对于非常高安全性的项目(您需要软件证书或专业代码审查),您还可以使用 Crypto++,这是一个提供开箱即用的 SHA-2 的认证库:
对于认证版本,请参阅页面底部的FIPS 140-2 一致性部分。请注意,认证版本仅适用于 Windows。
请注意,Qt 5 内置了 SHA-2:
http://doc.qt.io/qt-5/qcryptographichash.html#Algorithm-enum
我猜您希望您的应用程序与 Qt 4 兼容。但是,如果您的应用程序是使用 Qt5 编译的,您应该考虑使用内置的 SHA-2 实现,这可以使用预处理器条件和 .pro 文件条件库包含来完成。
【讨论】:
QCA::isSupported("sha2") 获得 true。