【问题标题】:Does QCA support SHA-2 hashing?QCA 是否支持 SHA-2 散列?
【发布时间】:2012-08-12 10:02:19
【问题描述】:

QCA(Qt 加密架构)是否支持 SHA-2(尤其是 SHA256)?如果没有:Qt 中是否有用于 SHA-2 散列的插件?

请告诉我一些配置细节。

【问题讨论】:

    标签: qt hash cryptography shared-libraries


    【解决方案1】:

    是的,通过添加 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

    然后您可以在应用程序运行时使用此代码 sn-p 进行检查:

    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 文件条件库包含来完成。

    【讨论】:

    • 非常感谢您提供的信息..我已经尝试过 ossl 插件,但可能是我犯了错误,导致自身无法连续运行。我已经在qt中配置成功了,请问如何使用mingw工具链在Qt中配置ossl?
    • 我的亲。带有 qca 的 qt 文件看起来像这样.. QT += core QT -= gui TARGET = hash CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp LIBS += -LC:/Qt/hash/qca -2.0.3/lib -lqca2 INCLUDEPATH += "F:/QtSDK/qca-2.0.3/include/QtCrypto" CONFIG += crypto
    • 您是否将 QCA 的 DLL 文件和 OSSL 插件都放在了您的应用程序目录中?错误信息是什么?您的 .pro 文件对我来说看起来是正确的,因为我猜您不需要编写任何内容即可将 OSSL 提供程序插件包含到此文件中。 (提供程序在运行时加载。)另请注意,我更新了答案并包含了一个代码 sn-p 以在运行时检查 SHA-2 的可用性。成功运行应用程序后,如果找到 OSSL DLL,您应该从 QCA::isSupported("sha2") 获得 true
    • @muktoshuvro 这是一个很好的 Linux 和 Windows 教程 (mingw):essentialunix.org/…
    • @IspasClaudiu 谢谢,已修复。
    猜你喜欢
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多