Proditio的文章

  • 使用VS2013编译Crypto++加密库

    背景近期写了一个关于AES和RSA加解密的小程序,其中加解密模块使用开源的Crypto++加密库写的。在程序使用Crypto++加密库之前,需要下载Crytpo++加密库的源码到本地,自己编译,得到库文件。
    当时的最新版Crypto++版本是5.6.5版本,支持到VS2010开发环境编译,所以,我使用VS2013去编译的话,还需要项目进行一些编译的设置。
    现把当时编译的过程详细描述出来,形成文档,方便有需要的人们参考。
    准备工作首先,你要有个VS2013开发环境。因为本文讲解的是使用VS2013开发环境进行编译的,理论上VS2010、VS2012、VS2015、VS2017等应该也适用的。
    其次,需要到Crypto++官网 (https://www.cryptopp.com) 下载Crypto++库的源码。本文以“Crypto++ 5.6.5”版本为例进行讲解。
    编译过程1. 升级解决方案将“Crypto++ 5.6.5”版本Crypto++库源码下载下来后,进行解压缩。使用VS2013开发环境打开“cryptest.sln”解决方案文件。VS2013提示说“升级VC++编译器和库”,这时我们点击“确定”。因为Crypto++项目工程原来使用VS2010开发的,现在我们使用VS2013重新进行编译,所以要对项目进行升级。

    升级完成后,我们可以在左侧看到项目列表,其中“cryptlib”项目工程就是我们将要进行编译的项目工程。

    2. 更改项目工程平台工具集选中要编译的“crytplib”项目工程,鼠标右击,选中“属性”,打开“属性页”。然后,在“平台工具集”的选项中,选择“Visual Studio 2013 - Windows XP (v120_xp)”,表示兼容XP平台,也就是在XP系统下,调用此Crypto++库文件,也能正常运行。

    3. 重新生成在设置完成之后,右击“cryptlib”项目工程,选择“重新生成(E)”。

    这样,就可以在生成目录下找到生成的库文件了。

    我们可以选择不同的编译模式:Debug模式或是Release模式,选择不同的位数:Win32或是x64,来生成我们所需的库文件。
    4. 加载到程序中我们编译得到库文件“cryptlib.lib”库文件之后,然后,把程序所用加密算法的头文件如:AES加密算法所需的头文件“aes.h”、RSA加密算法所需的头文件“rsa.h”、“randpool.h”、“hex.h”、“files.h”;连同库文件“cryptlib.lib”文件一起拷贝到我们自己的程序目录下,并导入到程序中。这样,我们就可以直接调用Crypto++加密库的函数了。

    总结步骤不是很复杂,要注意一点的是,注意编译的时候,“运行库”对应的设置,这样在自己程序调用编译好的Crypto++库的时候,也要选择相应的模式,进行相应的“运行库”设置。
    参考参考自《Windows黑客编程技术详解》一书
    2  留言 2018-12-20 12:38:15
eject