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​​,通过编译产生这样一系列文件:

[转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)_perl

  inc32里面放置C语言头文件。

  1. 现在我要在VS2010的工程项目中使用到它,首先我要创建一个VC++.NET的项目,我这里创建了一个MFC应用程序:

[转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)_应用程序_02

  在项目名称中点击“右键”,选择“属性”,从里面找到“VC++目录”:

[转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)_应用程序_03

  找到两个目录选项:

[转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)_头文件_04

  其中包含目录指向你的Openssl的头文件的目录,库目录指向你的Lib、Dll所在的目录。 ​[转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)_perl_05

[转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)_perl_06

  从这里新建目录来指向引导的目录:

  然后切换到“链接器”-> “输入”:

[转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)_c语言_07

  在“附加依赖项”中,加入两个Lib文件:

[转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)_应用程序_08

  这样就完成了静态库的引用。

  2. 现在看下项目中怎么引用它(以SHA256算法为例):

  #include <openssl/sha.h>

  方法展示:





​?​



1


2


3


4


5


6


7


8


9


10


11


12


13


14




​// 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]);​


​}​


​}​



  调用:





​?​



1


2




​static​​ ​​unsigned ​​​​char​​ ​​buffer[64];​


​sha256(signature, (​​​​char​​​​*)buffer);​



  由于Openssl包需要利用Perl进行编译形成Lib以及Dll文件,这里我附上已经制作好的文件,方便大家使用!