標籤:
本文轉自:http://kb.cnblogs.com/page/94467/
Openssl是個為網路通訊提供安全及資料完整性的一種安全性通訊協定,囊括了主要的密碼演算法、常用的密鑰和認證封裝管理功能以及SSL協議,並提供了豐富的應用程式供測試或其它目的使用。
首先下載Openssl包:(http://www.openssl.org/),這是一個C語言類庫包,在Windows下可以通過Perl對該類庫包進行MakeBuild,產生libeay32、ssleay32的Lib以及Dll檔案,具體操作詳見:http://blogger.org.cn/blog/more.asp?name=OpenSSL&id=18972,通過編譯產生這樣一系列檔案:
inc32裡面放置C語言標頭檔。
1. 現在我要在VS2010的工程項目中使用到它,首先我要建立一個VC++.NET的項目,我這裡建立了一個MFC應用程式:
在項目名稱中點擊“右鍵”,選擇“屬性”,從裡面找到“VC++目錄”:
找到兩個目錄選項:
其中包含目錄指向你的Openssl的標頭檔的目錄,庫目錄指向你的Lib、Dll所在的目錄。
從這裡建立目錄來指向引導的目錄:
然後切換到“連結器”-> “輸入”:
在“附加依賴項”中,加入兩個Lib檔案:
這樣就完成了靜態庫的引用。
2. 現在看下項目中怎麼引用它(以SHA256演算法為例):
#include <openssl/sha.h>
方法展示:
?
| 1234567891011121314 |
// SHA256演算法字串加密void sha256(char* string, char outputBuffer[64]){ unsigned char hash[SHA256_DIGEST_LENGTH]; SHA256_CTX sha256; SHA256_Init(&sha256); SHA256_Update(&sha256, string, strlen(string)); SHA256_Final(hash, &sha256); int i = 0; for(i = 0; i < SHA256_DIGEST_LENGTH; i++) { sprintf(outputBuffer + (i * 2), "%02x", hash[i]); }} |
調用:
?
| 12 |
static unsigned char buffer[64];sha256(signature, (char*)buffer); |
由於Openssl包需要利用Perl進行編譯形成Lib以及Dll檔案,這裡我附上已經製作好的檔案,方便大家使用!
Openssl最新版openssl-1.0.0d的Windows執行包下載:openssl_out32dll.rar
[轉]在VS2010 VC++項目中引用Lib靜態庫(以Openssl為例)