(全网最详细攻略)【Crypto++】在Visual studio2022中运行Cryptopp 您所在的位置:网站首页 密码图cryptograph (全网最详细攻略)【Crypto++】在Visual studio2022中运行Cryptopp

(全网最详细攻略)【Crypto++】在Visual studio2022中运行Cryptopp

2024-04-03 00:47| 来源: 网络整理| 查看: 265

文章目录 前言一、Cryptopp是什么?1. Cryptopp(CRYPTO++)官方文档wiki 二、下载Cryptopp2. Crypto++下载地址3. 下载PEM包 三、在VS2022中使用Cryptopp库4. 处理crypto++源文件5. 在VS2022项目中使用crypto++库 四、运行代码后一些关于c++的错误总结

前言 Cryptopp是什么?如何下载Cryptopp?如何在VS中使用Crypto++? 一、Cryptopp是什么?

免费C++库,用于密码方案,最初由Wei Dai编写,包括密码,消息认证代码,单向哈希函数,公钥密码系统,密钥协议方案和压缩压缩。 PEM包:消息加密的部分实现,允许您读取和写入 PEM 编码的密钥和参数,包括加密的私钥。其他文件包括对 RSA、DSA、EC、ECDSA 密钥和 Diffie-Hellman 参数的支持。该包包括五个额外的源文件,一个使用OpenSSL创建测试密钥的脚本,一个用于测试读取和写入密钥的C++程序,以及一个用于验证使用OpenSSL编写的Crypto++编写的密钥的脚本。

1. Cryptopp(CRYPTO++)官方文档wiki

https://cryptopp.com/wiki/Main_Page

二、下载Cryptopp 2. Crypto++下载地址 官网地址:https://www.cryptopp.com/#downloadgithub地址(8.7.0版本):https://github.com/weidai11/cryptopp/releases/tag/CRYPTOPP_8_7_0 有四个选项,请下载源码(如图所示) 在这里插入图片描述 3. 下载PEM包 pem包官方地址:https://cryptopp.com/wiki/PEM_Pack 滑动页面至底部,下载(如图所示) 在这里插入图片描述 在这里插入图片描述 三、在VS2022中使用Cryptopp库 4. 处理crypto++源文件 打开下载并解压好的crypto++文件和pem包,将pem包中包含的全部文件复制粘贴到crypto++包中:

图1是解压后的pem包 在这里插入图片描述 图2为pem包中包含的所有文件 在这里插入图片描述

将图2中所有文件粘贴到图3所示解压后的crypto++文件中,双击打开crypto++文件中的cryptest.sln: 在这里插入图片描述在VS2022中可以看到四个子工程(如图所示): cryptdll - 生成cryptopp.dll动态库dlltest - 用来测试cryptopp.dll,依赖cryptdll工程cryptlib - 生成cryptlib.lib静态库cryptest - 用来测试cryptopp,依赖cryptlib工程 在这里插入图片描述 往crypto++源文件中加入pem包:

右击“Header Files”->添加->现有项:

pem.hpem_common.h

右击“Source Files”->添加->现有项:

pem_common.cpppem_read.cpppem_write.cpp

在这里插入图片描述 5. build子工程cryptlib,生成lib文件 分别在Release和debug两个情况下,调整设备型号(本机是x64),右击子工程cryptlib点击“生成”。输出显示成功后即为完成。

在这里插入图片描述

此时,crypto++源文件夹下会多出一个名称为x64的文件夹,该文件夹下有三个子文件夹,其中一个名为Output,Output文件夹下有两个子文件夹,如图所示。Debug和Release文件夹下都有lib文件,这两个lib文件就是我们后面要使用的lib库。 在这里插入图片描述 在这里插入图片描述

处理crypto++文件: 新建文件夹,命名为cryptopp(或其他名称),文件夹下创建两个文件夹,分别命名为include,lib。 在这里插入图片描述 将crypto++源文件中所有头文件(.h结尾的文件)复制到新文件夹下的include文件夹下。 在这里插入图片描述

在这里插入图片描述

将上述Output文件夹复制粘贴到新建文件夹下的lib文件中。 在这里插入图片描述 至此,我们需要用到crypto++库整理完成。简而言之,从官网上下载下来的整个crypto++源码,我们只需要用到include和lib两个库文件。 5. 在VS2022项目中使用crypto++库

打开VS2022,文件->新建->项目->控制台应用 在这里插入图片描述

将新创建的项目中原本的hello world代码换成以下代码(该代码为crypto++官网给出的AES加密代码)作为测试代码:

#include "cryptlib.h" #include "rijndael.h" #include "modes.h" #include "files.h" #include "osrng.h" #include "hex.h" #include #include int main(int argc, char* argv[]) { using namespace CryptoPP; AutoSeededRandomPool prng; HexEncoder encoder(new FileSink(std::cout)); SecByteBlock key(AES::DEFAULT_KEYLENGTH); SecByteBlock iv(AES::BLOCKSIZE); prng.GenerateBlock(key, key.size()); prng.GenerateBlock(iv, iv.size()); std::string plain = "CBC Mode Test:Hello!"; std::string cipher, recovered; std::cout std::cerr std::cerr


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有