我想用openssl来在qt里完成加密,但在返回加密后的数据时会出问题
QByteArray sha256(const QByteArray &data) {
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_CTX ctx;
SHA256_Init(&ctx);
SHA256_Update(&ctx, data, data.size());
SHA256_Final(hash, &ctx);
// qDebug() << QByteArray::fromRawData((char*)hash, SHA256_DIGEST_LENGTH).toHex();
// 这里输出的是正常的
return QByteArray::fromRawData((char*)hash, SHA256_DIGEST_LENGTH);
}
int main(int argc, char **argv) {
QCoreApplication a(argc, argv);
qDebug() << sha256("Hello!").toHex();
// 这里输出不对,并且每次运行输出结果都不同
return a.exec();
}
qt版本:5.14.2
编译器:MSVC 2017 x64
Openssl版本:1.1.1g Win64