1. 程式人生 > >在 Windows下用 Visual Studio 編譯 OpenSSL 1.1.0

在 Windows下用 Visual Studio 編譯 OpenSSL 1.1.0

2、安裝 ActivePerl, 可以到http://www.activestate.com/activeperl/downloads下載最新版本, 需要用到 perl 直譯器。

     注:Perl 最低版本要求5.10以上,Windows XP使用者最後支援版本ActivePerl 5.20.2.2002 版本

3、使用 VS2010 下的 Visual Studio 2010 Command Prompt 進入控制檯模式 (這個模式會自動設定各種環境變數,根據編譯32位、64位、Itanium自己選擇)。

4、安裝dmake,ppm install dmake

5、解壓縮 openssl 原始碼包,進入 openssl 的根目錄, 如 E:\openssl-1.1.0。

6、perl configure VC-WIN32

必須在 c:\openssl-1.1.0 目錄下執行該命令, 否則找不到 Configure 檔案, 這時就必須指定完整的 Configure 檔案路徑。

64編譯的話 Win64/x64 執行 perl Configure VC-WIN64A;Win64/IA64 執行 perl Configure VC-WIN64I。

7、在正式編譯之前

(1). 找到 c:\openssl-1.1.0\configdata.pm和c:\openssl-1.1.0\makefile兩個檔案, 用記事本開啟, 搜尋 “/MD” 字串, 替換成 “/MT”, 這將導致靜態連結 C 執行, 避免了在目標機器上安裝 VC 再發行包等等操作。

8、編譯, nmake

9、編譯, nmake test

10、編譯, nmake install

      注:openssl 1.1.0開始由原先的libeay32.dll、ssleay32.dll變成了libcrypto-1_1.dll、libssl-1_1.dll,一些加密方式也發生了變化。

      比如原先:

      C:\>echo test|openssl enc -base64 -aes-256-cbc -k 123 得到密文:

      U2FsdGVkX19HgMwgeLRw6KIOvhXKrz1keMbCrFuvfh8=

     然後執行C:\>echo U2FsdGVkX19HgMwgeLRw6KIOvhXKrz1keMbCrFuvfh8=|openssl enc -base64 -aes-256-cbc -k 123 -d

解密得到原文:

     test

     可是在1.1.0中解密會失敗。