OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。
官网:http://www.openssl.org/
OpenSSL for Windows:http://www.slproweb.com/products/Win32OpenSSL.html
在这里,我使用已编译好的OpenSSL库(上面第二个网址下载),安装过程如下:
安装过程中,会提示将DLL拷贝到系统目录,还是OpenSSL目录下的bin文件夹,如下图所示:
下面进行测试使用OpenSSL:
1.打开VS2008,新建一个Win32控制台应用程序,勾选"空项目";
2.菜单→"项目"→"添加新项"→"C++ 文件(.cpp)",名称为"main";
3.输入以下测试代码:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <string> #include <iostream> #include "openssl/md5.h" int main() { std::string str = "1234"; std::string strMd5 = ""; unsigned char md[MD5_DIGEST_LENGTH]; char tmp[3] = {0}; MD5((const unsigned char*)str.c_str(), str.size(), md); for (int i = 0; i < MD5_DIGEST_LENGTH; i++) { sprintf_s(tmp, "%02X", md[i]); strMd5.append(tmp); } std::cout<<strMd5<<std::endl; return 0; } |
4.菜单→"项目"→"属性",根据不同的运行库,进行设置:
附加包含目录:"D:OpenSSL-Win32include"
附加库目录:"D:OpenSSL-Win32libVC"
运行时库 附加依赖项
多线程(/MT) libeay32MT.lib ssleay32MT.lib
多线程调试(/MTd) libeay32MTd.lib ssleay32MTd.lib
多线程 DLL (/MD) libeay32MDd.lib ssleay32MDd.lib
多线程调试 DLL (/MDd) libeay32MD.lib ssleay32MD.lib
5.若是要静态链接,则将附加库目录设置为:"D:OpenSSL-Win32libVCstatic",附加依赖项再添加如下:
User32.lib
Advapi32.lib
Gdi32.lib
Ws2_32.lib
Crypt32.lib
以上根据使用到OpenSSL的具体功能,而进行添加。
6.运行如下图所示:
http://blog.csdn.net/akof1314/article/details/7241829