简述
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(conststd::string str)
{char buf[2];unsignedchar 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::stringstr ="Hello World";
qDebug() << QString::fromStdString(sha256(str));return a.exec();
}
输出结果:”a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e”
为了确定输出是否正确,我们可以在网上进行在线验证。