Qt之OpenSSL
2016-06-08 10:31
337 查看
简述
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。简述
下载安装
使用
更多参考
下载安装
进入Win32 OpenSSL下载页面,选择适合自己的版本进行下载。下载完成之后进行安装,我选择的目录为
D:\Program Files\OpenSSL-Win32。进入安装目录,可以看到主要包含以下文件夹:
lib:包含了所有的库文件(例如:libeay32.lib、ssleay32.lib)。
include:包含了所有的头文件(例如:aes.h、md5.h)。
bin:包含了测试程序、存储证书和密钥的文件(*.pem)。
如果想自行编译,可参考:Windows下编译OpenSSL
使用
在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”
为了确定输出是否正确,我们可以在网上进行在线验证。
更多参考
Windows下编译OpenSSLOpenSSL
How to Include OpenSSL in a Qt project
Building OpenSSL for Visual Studio
如何在Windows下编译OpenSSL?
相关文章推荐
- OpenSSL编程之RSA
- 怎样安装openssl 2011-12-11
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt 5.6更新至RC版,最终版本近在咫尺
- 如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
- Qt定时器和随机数详解
- Java OpenSSL生成的RSA公私钥进行数据加解密详细介绍
- linux openssl基础介绍
- 使用openssl实现rsa非对称加密算法示例
- Qt实现图片移动实例(图文教程)
- openSUSE下的Ruby安装openssl出错解决方法
- Qt for Android开发实例教程
- 一个检测OpenSSL心脏出血漏洞的Python脚本分享
- 针对OpenSSL安全漏洞调整Nginx服务器的方法
- QModelIndex/Role/Model介紹<二>
- Qt Model/View/Delegate浅谈 - QAbstractListModel
- Qt Model/View/Delegate浅谈 - roleNames()
- QT历程(一):与CryptoJs对应的AES加密