VS 中 OpenSSL 環(huán)境配置示例
最近在研究信息安全,需要用到 OpenSSL 庫,我用到的開發(fā) IDE 是 VS2012,所以,在這里也記錄一下我配置 VS2012 的 OpenSSL 庫的過程。

下載 OpenSSL 庫
OpenSSL 庫大家可以自行下載源碼然后用 ruby 進行編譯,另外我們也可以選擇直接下載編譯好的類庫。 這里我們利用的后者,在此提供一個下載鏈接。 OpenSSL-Win32 下載完成之后解壓,比如我的放到了 D 盤。
新建項目
首先,我們找一段測試代碼,在此利用的是 AES 算法的示例。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include
#include
#include
#include
int main()
{
unsigned char key[16+1] = "my-key-i-choosed"; // 128bits key (應(yīng)該是真正的隨機數(shù)才好)
char pt1[16+5+1] = "0123456789abcdef12345"; // 明文
char ct[16+5+1]; // 密文
char pt2[16+5+1]; // 解密后的明文
AES_KEY k;
unsigned char iv1[16+1] = {"1023456789abcdef"}; // 16+1,加密用
unsigned char iv2[16+1] = {"1023456789abcdef"}; // 16+1,解密用
{ // single blcok test
AES_set_encrypt_key(key, 16*8, &k);
AES_encrypt((unsigned char*)pt1, (unsigned char*)ct, &k);
AES_set_decrypt_key(key, 16*8, &k);
AES_decrypt((unsigned char*)ct, (unsigned char*)pt2, &k);
if (memcmp(pt1, pt2, 16)==0)
puts("AES block ok");
else
puts("AES block err");
}
{ // cfb mode (stream mode)
int num=0;
AES_set_encrypt_key(key, 16*8, &k);
AES_cfb128_encrypt((unsigned char*)pt1, (unsigned char*)ct,
16+5, &k, (unsigned char*)iv1, &num, AES_ENCRYPT);
num=0;
AES_set_encrypt_key(key, 16*8, &k); // MUST as enc
AES_cfb128_encrypt((unsigned char*)ct, (unsigned char*)pt2,
16+5, &k, (unsigned char*)iv2, &num, AES_DECRYPT);
if (memcmp(pt1, pt2, 16+5)==0)
puts("AES CFB mode ok");
else
puts("AES CFB mode err");
}
system("pause");
return 0;
}
接下來新建一個項目,win32 控制臺程序,空項目,完成。 新建源文件,我取名叫做 aes.cpp,將代碼復制進去,可以看到代碼最初是在報錯的。 好,接下來我們進行環(huán)境配置。
環(huán)境配置
右鍵項目名稱,彈出一個菜單,選擇屬性。 在 VC++ 目錄選項卡中,添加包含目錄和庫目錄。 在這里,我的包含目錄就是剛才解壓的 OpenSSL 目錄的 include 目錄,庫目錄則是 lib 目錄。 注意:分號要是英文分號,英文分號! 接下來選擇連接器選項卡,輸入 libeay.lib 和 ssleay32.lib 兩個附加依賴項。 現(xiàn)在右擊項目,重新生成。 我們可以看到,程序可以正常生成 exe 了。 但是直接運行的話會報錯,是因為缺少 dll 文件。 之后,將項目中的 libeay32.dll 和 ssleay32.dll 文件放入項目的 debug 目錄即可。 最后項目的 debug 目錄如下 重新運行 exe 程序,發(fā)現(xiàn)已經(jīng)正常運行。 至此,VS 配置 OpenSSL 環(huán)境的過程已經(jīng)全部完成。 其他項目類似,大家可以試著配一下。 如有問題,歡迎留言交流~
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。