Qt是否支持RSA加密?

时间:2010-11-22 09:20:56

标签: qt encryption rsa

Qt是否支持rsa加密,QSslkey似乎不起作用。 提前谢谢。

3 个答案:

答案 0 :(得分:3)

Qt支持RSA进行SSL连接。没有接口可以直接使用RSA密钥。

您可以查看Qt Cryptographic Architecture project,但不再需要维护。

答案 1 :(得分:2)

Qt支持RSA加密。您必须向QSslKey指出所使用的正确算法:http://doc.qt.io/qt-5/qssl.html#KeyAlgorithm-enum

答案 2 :(得分:1)

如果要加密没有ssl依赖关系的数据,则可以使用我的库Qt-Secret。 该库支持qmake构建系统,可以很容易地连接到您的项目。


例如:

构建

  • git clone 'https://github.com/QuasarApp/Qt-Secret.git'
    cd Qt-Secret
    git submodule update --init --recursive
    qmake -r 
    make -j8
    make test #(for testing)
    

包含

对于qmake项目

  • cd yourRepo
    git submodule add https://github.com/QuasarApp/Qt-Secret.git # add the repository of Qt-Secret into your repo like submodule
    git submodule update --init --update
    
  • 在pro文件中包括Qt-Secret库的pri文件:

    include($$PWD/Qt-Secret/src/Qt-Secret.pri)
    
  • 重建项目。

对于其他构建系统

  • cd yourRepo
    git submodule add https://github.com/QuasarApp/Qt-Secret.git # add the repository of Qt-Secret into your repo like submodule
    git submodule update --init --update
    
  • 添加规则以构建Qt-秘密。

  • 为您的构建系统添加INCLUDEPATHLIBS
  • 重建项目。

用法

RSA

消息的加密和解密。

#include <qrsaencryption.h>

    QByteArray pub, priv;
    QRSAEncryption e(QRSAEncryption::Rsa::RSA_2048);
    e.generatePairKey(pub, priv);
    QByteArray msg = "test message";

    auto encodeData = e.encode(msg, pub);
    auto decodeData = e.decode(encodeData, priv);

消息签名的签名和验证。

#include <qrsaencryption.h>

    QByteArray pub, priv;
    QRSAEncryption e;
    e.generatePairKey(pub, priv, QRSAEncryption::Rsa::RSA_128); // or other rsa size 

    QByteArray msg = "test message";

    auto signedMessage = e.signMessage(msg, priv);

    if (e.checkSignMessage(signedMessage, pub)) {
        // message signed success
    }