• Qt之OpenSSL(有pro文件的路径格式,以及对libeay32和ssleay32的引用)


    简述

    OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

    下载安装

    进入Win32 OpenSSL下载页面,选择适合自己的版本进行下载。

    下载完成之后进行安装,我选择的目录为D:Program FilesOpenSSL-Win32。进入安装目录,可以看到主要包含以下文件夹:

    lib:包含了所有的库文件(例如:libeay32.lib、ssleay32.lib)。 
    include:包含了所有的头文件(例如:aes.h、md5.h)。 
    bin:包含了测试程序、存储证书和密钥的文件(*.pem)。

    使用

    在pro中包含库文件与路径。

    LIBS += -L"D:/Program Files/OpenSSL-Win32/lib" -llibeay32
    LIBS += -L"D:/Program Files/OpenSSL-Win32/lib" -lssleay32
    
    INCLUDEPATH += $$quote(D:/Program Files/OpenSSL-Win32/include)

    然后就可以使用了,下面用sha256为例来对字符串进行加密

    #include <openssl/ssl.h>
    
    std::string sha256(const std::string str)
    {
        char buf[2];
        unsigned char hash[SHA256_DIGEST_LENGTH];
        SHA256_CTX sha256;
        SHA256_Init(&sha256);
        SHA256_Update(&sha256, str.c_str(), str.size());
        SHA256_Final(hash, &sha256);
        std::string newString = "";
        for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
        {
            sprintf(buf,"%02x",hash[i]);
            newString = newString + buf;
        }
        return newString;
    }

    以”Hello World”为例,来进行验证。

    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        std::string str = "Hello World";
        qDebug() << QString::fromStdString(sha256(str));
    
        return a.exec();
    }

    输出结果:”a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e”

    为了确定输出是否正确,我们可以在网上进行在线验证。

    更多参考

    http://blog.csdn.net/liang19890820/article/details/51611400

  • 相关阅读:
    交叉熵损失函数
    均方根误差(RMSE),平均绝对误差(MAE),标准差(Standard Deviation)
    【转载】【矩阵,数组,列表之间相互转化】
    【数据集介绍】【Point04】
    【视频处理知识】
    【IOU】
    【模型训练】
    【图片操作】
    python 写 XML 文件
    【数组操作】 创建、排序
  • 原文地址:https://www.cnblogs.com/findumars/p/5574651.html
Copyright © 2020-2023  润新知