Qt是否支持rsa加密,QSslkey似乎不起作用。 提前谢谢。
答案 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)
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-秘密。
INCLUDEPATH
和LIBS
。#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
}