VS 中 OpenSSL 環(huán)境配置示例

      網(wǎng)友投稿 683 2025-04-02

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


      下載 OpenSSL 庫

      OpenSSL 庫大家可以自行下載源碼然后用 ruby 進行編譯,另外我們也可以選擇直接下載編譯好的類庫。 這里我們利用的后者,在此提供一個下載鏈接。 OpenSSL-Win32 下載完成之后解壓,比如我的放到了 D 盤。

      新建項目

      首先,我們找一段測試代碼,在此利用的是 AES 算法的示例。

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      VS 中 OpenSSL 環(huán)境配置示例

      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)容。

      上一篇:如何使用Excel2007在表格中用斜劃線劃分內(nèi)容(excel如何將單元格斜線劃分)
      下一篇:如何取消文檔的標題屬性
      相關(guān)文章
      亚洲乱色伦图片区小说| 亚洲激情中文字幕| 亚洲一区精品视频在线| 99久久亚洲精品无码毛片 | 亚洲产国偷V产偷V自拍色戒| 国产精品亚洲五月天高清| 亚洲AV无码成人精品区狼人影院| 亚洲中文字幕久久精品无码VA| 久久精品国产亚洲AV忘忧草18| 亚洲中文无码av永久| 91午夜精品亚洲一区二区三区| 亚洲精品自在线拍| 亚洲欧洲精品视频在线观看| 亚洲网站在线免费观看| 亚洲第一页在线观看| 91亚洲性爱在线视频| 亚洲永久在线观看| 亚洲精品无码av中文字幕| 亚洲av无码专区亚洲av不卡| 国产亚洲人成在线播放| 亚洲精品国精品久久99热| 久久久久亚洲精品无码网址 | va天堂va亚洲va影视中文字幕| 亚洲制服丝袜中文字幕| 亚洲男人天堂2022| 亚洲国产精品无码观看久久| 亚洲av纯肉无码精品动漫| 精品国产_亚洲人成在线| 亚洲国产专区一区| 亚洲精品乱码久久久久久按摩 | 亚洲国产片在线观看| 久久久久久亚洲精品影院| 亚洲日韩精品无码专区加勒比☆ | 综合偷自拍亚洲乱中文字幕| 亚洲欧洲一区二区三区| 亚洲精品中文字幕无码蜜桃| 亚洲AV本道一区二区三区四区| 精品亚洲成a人片在线观看| 亚洲人成影院77777| 亚洲精品无码aⅴ中文字幕蜜桃| 无码国产亚洲日韩国精品视频一区二区三区 |