visual studio c++ 2015 Crypto++ 下载、编译和部署
2017-05-18 08:46
1446 查看
Crypto++是一个开源的C++加密算法库,它包括密码、消息认证码,单向散列函数,公钥密码机制,关键协议方案,缩小压缩等加密算法。本文将介绍Crypto++库从下载到项目应用的基本步骤。(本人目前的项目需要的是AES文件加密算法,其他的留待以后探索)
一、下载
1,登陆官网:https://www.cryptopp.com/
2,点击“Download”,将显示如下的下载列表
我选择的是“5.6.5 Release”。
二、编译
1,将下载的压缩文件解压后,找到“*.sln”文件。
Crypto++是一个跨平台的库,支持“MSVC6.0 - VS2015”、“GCC3.2 - 7”等C++编译器。我主要用于Win7 X86平台,选择用VS2015进行编译。
2,直接用VS2015打开“*.sln”文件,它会提示“升级VC++编译器和库”,确认即可。
升级完毕,在VS的解决方案资源管理器中,可以看到该solution下有四个工程,分别是:cryptdll、crypttest、cryptlib和dlltest。其中,crypttest需要依赖cryptlib,而dlltest则是对cryptdll的测试工程。
3,修改MSVC Runtime Library
Crypto++库支持多线程,上述四个工程,默认的多线程运行时库都是静态版本的,即“MT”或“MTd”,我们需要将它们修改为“MD”或“MDd”。
为什么要这么修改,可以参看我的另一篇博文:http://blog.csdn.NET/sagittarius_warrior/article/details/53405217
4)编译
可以对每个工程进行单独编译,也可以对整个solution进行编译(选择菜单栏上的“build”)。我选择的是编译整个solution,因为单工程编译时,编译cryptdll是会报错,暂时没去查它是为什么。
编译后,会生成一系列文件夹和文件,“Win32->Output->cryptlib.lib”,这个文件就是生成的库文件。事实上,这中方式仅仅只编译了cryptlib和crypttest。
三、部署
从上面的编译可知,Crypto++库有两种发布方式:一种是DLL(动态链接库),一种是Lib(静态链接库)。我在此先尝试Lib方式,后面有时间再探索DLL方式。下面,我将以一个win32Console工程为例,讲解如何部署Crypto++库。
1,新建Win32 Console工程
直接用VS2015新建一个名为“AES”的Win32 Console工程,默认即可。
2,拷贝头文件
Lib方式发布Crypto++库需要在目标工程下包含Crypto++源码文件夹下所有的头文件。事实上,这些头文件还是挺多的,有145个。为了方便管理,我新建一个“Include”文件夹,并编写一个bat脚本来将这些头文件拷贝到“Include”文件夹内。bat源码如下:
[cpp] view
plain copy
echo start copy
mkdir Include
copy *.h Include
echo end copy
pause
将这个Include文件夹放到目标工程源码目录下,并设置它为包含目录。
3,拷贝lib文件
在目标工程源码目录下,新建一个“Library”文件夹,将“cryptlib.lib”拷贝进去,并将该文件夹设为“链接器->附加依赖库目录”。
4,链接库文件
在此,我选择用“#pragma comment(lib,"cryptlib.lib")”预编译指令将它链接进去。也可以在工程文件中显示设置链接库。
5,包含对应的头文件和应用命令空间。
[cpp] view
plain copy
#include "aes.h"
#pragma comment(lib,"cryptlib.lib")
using namespace CrytoPP;
关于头文件,你需要用到那个算法,你就包含哪个头文件。比如,我这里只用到AES,我就只包含AES的头文件。
四、测试demo
参考链接:
ECB模式:http://www.cnblogs.com/lit10050528/p/4081658.html
CBC模式(C):http://www.mincoder.com/article/3994.shtml
CBC模式(C++)https://my.oschina.Net/u/566591/blog/168421
Multi-Modes :http://blog.poxiao.me/p/advanced-encryption-standard-and-block-cipher-mode/
一、下载
1,登陆官网:https://www.cryptopp.com/
2,点击“Download”,将显示如下的下载列表
我选择的是“5.6.5 Release”。
二、编译
1,将下载的压缩文件解压后,找到“*.sln”文件。
Crypto++是一个跨平台的库,支持“MSVC6.0 - VS2015”、“GCC3.2 - 7”等C++编译器。我主要用于Win7 X86平台,选择用VS2015进行编译。
2,直接用VS2015打开“*.sln”文件,它会提示“升级VC++编译器和库”,确认即可。
升级完毕,在VS的解决方案资源管理器中,可以看到该solution下有四个工程,分别是:cryptdll、crypttest、cryptlib和dlltest。其中,crypttest需要依赖cryptlib,而dlltest则是对cryptdll的测试工程。
3,修改MSVC Runtime Library
Crypto++库支持多线程,上述四个工程,默认的多线程运行时库都是静态版本的,即“MT”或“MTd”,我们需要将它们修改为“MD”或“MDd”。
为什么要这么修改,可以参看我的另一篇博文:http://blog.csdn.NET/sagittarius_warrior/article/details/53405217
4)编译
可以对每个工程进行单独编译,也可以对整个solution进行编译(选择菜单栏上的“build”)。我选择的是编译整个solution,因为单工程编译时,编译cryptdll是会报错,暂时没去查它是为什么。
编译后,会生成一系列文件夹和文件,“Win32->Output->cryptlib.lib”,这个文件就是生成的库文件。事实上,这中方式仅仅只编译了cryptlib和crypttest。
三、部署
从上面的编译可知,Crypto++库有两种发布方式:一种是DLL(动态链接库),一种是Lib(静态链接库)。我在此先尝试Lib方式,后面有时间再探索DLL方式。下面,我将以一个win32Console工程为例,讲解如何部署Crypto++库。
1,新建Win32 Console工程
直接用VS2015新建一个名为“AES”的Win32 Console工程,默认即可。
2,拷贝头文件
Lib方式发布Crypto++库需要在目标工程下包含Crypto++源码文件夹下所有的头文件。事实上,这些头文件还是挺多的,有145个。为了方便管理,我新建一个“Include”文件夹,并编写一个bat脚本来将这些头文件拷贝到“Include”文件夹内。bat源码如下:
[cpp] view
plain copy
echo start copy
mkdir Include
copy *.h Include
echo end copy
pause
将这个Include文件夹放到目标工程源码目录下,并设置它为包含目录。
3,拷贝lib文件
在目标工程源码目录下,新建一个“Library”文件夹,将“cryptlib.lib”拷贝进去,并将该文件夹设为“链接器->附加依赖库目录”。
4,链接库文件
在此,我选择用“#pragma comment(lib,"cryptlib.lib")”预编译指令将它链接进去。也可以在工程文件中显示设置链接库。
5,包含对应的头文件和应用命令空间。
[cpp] view
plain copy
#include "aes.h"
#pragma comment(lib,"cryptlib.lib")
using namespace CrytoPP;
关于头文件,你需要用到那个算法,你就包含哪个头文件。比如,我这里只用到AES,我就只包含AES的头文件。
四、测试demo
参考链接:
ECB模式:http://www.cnblogs.com/lit10050528/p/4081658.html
CBC模式(C):http://www.mincoder.com/article/3994.shtml
CBC模式(C++)https://my.oschina.Net/u/566591/blog/168421
Multi-Modes :http://blog.poxiao.me/p/advanced-encryption-standard-and-block-cipher-mode/
相关文章推荐
- Visual Studio 2015编译64位MySQL Connector/C++
- win10下Visual Studio 2015,C++ x64编译zlib
- win10下Visual Studio 2015,C++ x64编译zmq
- Visual Studio 2015编译64位MySQL Connector/C++
- win10下Visual Studio 2015,C++ x64编译zlib
- 支付宝C++接口编译 (Windows 10 + Visual Studio 2015Update 3+ Qt 5.7.0)
- 探索Crypto++(一)下载、编译和部署
- Visual Studio 2010 编译 MongoDB C++ Client Driver(看这里,终于解决了编译问题,谢谢大神的分享)
- 使用Ant构建web项目 从编译到测试 生成测试报告 打包 邮件发送 远程下载tomcat 部署运行一条龙服务之ant脚本
- Visual Studio 各版本下载合集vs2005下载vs2008下载vs2010下载vs2012下载vs2015下载
- 如何在 Visual Studio 中混合编译C# 和 C++代码,生成单一的DLL?
- ofbiz下载编译部署流程
- c++学习笔记(1)——环境搭建、经典教程推荐及 Visual Studio 2005/2008中如何编译和运行C++程序
- 【IDE-Visual Studio】C++ 编译错误:LINK : fatal error LNK1123
- Visual Studio 2005中如何编译和运行C++程序
- Visual Studio 2010 编译 MongoDB C++ Client Driver
- visual studio 2012 C/C++程序的创建、编辑、编译和运行过程
- intel c/c++ compiler 下载 安装 编译
- 如何使用Visual studio C++(VC++)编译C?图解,详!!!