cryptopp 加解密的坑

C++ 下两大加密库, openssl 和 cryptopp,openssl 使用更广泛一些,不过编译起来得用命令行,且生成的都是动态库,不过接口是纯 C 的,调用方使用更方便一些; cryptopp 使用 C++ 模板编写,可编译为静态库使,不过使用不当,会莫名其妙的 crash。

cryptopp 的链式调用,new 出来的对象你看不到 delete,估计是调用方维持了指针,负责 delete。

字节缓冲区可用 std::vector<byte> 也可用自带的 ByteQueue 和 SecByteBlock。

最坑的是 AES 加解密已经不支持构造函数入参,得改变用

原始方式

 CFB_Mode<AES>::Encryption cfbEncryption(key, key.size(), iv);

最新方式

CFB_Mode< AES >::Encryption e;
e.SetKeyWithIV(&key_block[0], key_block.size(), &iv_block[0]);

生成随机密钥

AutoSeededRandomPool rnd;
SecByteBlock key(AES::DEFAULT_KEYLENGTH);
rnd.GenerateBlock( key, key.size());
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,663评论 25 708
  • 接着上节 condition_varible ,本节主要介绍future的内容,练习代码地址。本文参考http:/...
    jorion阅读 14,849评论 1 5
  • 素质,真的与职业、学历、年龄、身份无关…………有的人身体不完整,但灵魂是完整且崇高的;有的人身体是完整的,...
    真水无香eqq阅读 230评论 0 1
  • 人生的大部分时候无非就是我们自己把自己困住了,或是逃避,或是害怕,种种的心态都是自己施加给自己的,所以,成为别...
    凝生阅读 232评论 0 1