簡述
OpenSSL是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程序供測試或其它目的使用。
下載安裝
進入Win32 OpenSSL下載頁面,選擇適合自己的版本進行下載。
下載完成之后進行安裝,我選擇的目錄為D:\Program Files\OpenSSL-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”
為了確定輸出是否正確,我們可以在網上進行在線驗證。
更多參考
- OpenSSL
- How to Include OpenSSL in a Qt project
- Building OpenSSL for Visual Studio
- 如何在Windows下編譯OpenSSL?
http://blog.csdn.net/liang19890820/article/details/51611400