C++ 使用Poco库实现HMACSHA256加密
C++ 使用Poco库实现HMACSHA256加密
flyfish
头文件
#include <Poco/DigestStream.h>
#include <Poco/StreamCopier.h>
#include <Poco/NumberParser.h>
#include <Poco/HMACEngine.h>
实现
class SHA256Engine : public Poco::SHA2Engine {public:enum{BLOCK_SIZE = 64,DIGEST_SIZE = 32};SHA256Engine() :Poco::SHA2Engine(Poco::SHA2Engine::ALGORITHM::SHA_256) {}virtual ~SHA256Engine() {}
};
加密结果输出16进制的字符串
std::string to_hmac_hex(std::string source,std::string secret)
{Poco::HMACEngine<SHA256Engine> hmac(secret);Poco::DigestOutputStream dos(hmac);std::istringstream istr(source);Poco::StreamCopier::copyStream(istr, dos);dos.close();return Poco::DigestEngine::digestToHex(hmac.digest());}
加密结果输出32个字节
std::vector<unsigned char> to_hmac_bytes(std::string source,std::string secret)
{Poco::HMACEngine<SHA256Engine> hmac(secret);Poco::DigestOutputStream dos(hmac);std::istringstream istr(source);Poco::StreamCopier::copyStream(istr, dos);dos.close();return hmac.digest();}
16进制字符串以每两位为一个字节的方式转换成字符串
void hex_to_string(const std::string& hex, std::string& bytes)
{unsigned int v;if(!bytes.empty())bytes.clear();for(std::string::size_type i = 0; i < hex.length(); i+=2){if(Poco::NumberParser::tryParseHex(hex.substr(i, 2), v))bytes.push_back(v);}
}
C++ 使用Poco库实现HMACSHA256加密相关推荐
- C++ 使用Poco库进行MD5,SHA加密
C++ 使用Poco库进行MD5,SHA加密 flyfish 头文件 #include <iostream> #include <Poco/MD5Engine.h> #incl ...
- C++ POCO库(访问数据库,版本问题,本人配置失败)
官网下载源码:https://pocoproject.org/ 一.POCO库简介 学习一个框架前,要先明白它的是什么,为什么,怎么用.下面这些文字,是从中文poco官网上转过来的,正如poco c+ ...
- python加密库_python基于pyDes库实现des加密的方法
本文实例讲述了python基于pyDes库实现des加密的方法.分享给大家供大家参考,具体如下: 下载及简介地址:https://twhiteman.netfirms.com/des.html 如需要 ...
- 基于 C++ POCO 库封装的异步多线程的 CHttpClient 类
用惯了 Jetty 的 基于事件的 HttpClient 类,在C++平台上也没找到这样调用方式的类库,只好自己写一个了. 目前版本 1.0,朋友们看了给点建议.(注:Kylindai原创,转载请注明 ...
- POCO库中文编程参考指南(11)如何使用Reactor框架?
1 Reactor 框架概述 POCO 中的 Reactor 框架是基于 Reactor 设计模式进行设计的.其中由 Handler 将某 Socket 产生的事件,发送到指定的对象的方法上,作为回调 ...
- Poco库使用:操作Json格式数据
文章目录 1.解析json字符串数据 2.生成Json格式的数据 3.操作Json数组 4.使用字符串流转换Json格式数据 5.使用键值检索Json结构中的数据 6.使用原始字符串避免字符转义 7. ...
- Poco库使用:任务管理器TaskManager
文章目录 1.定义独立任务 2.使用TaskManager启动多个任务 3.TaskManager使用自定义线程池 4.添加任务观察者 5.使用自定义的任务观察者和任务通知 Poco库的任务管理器Ta ...
- C++ 使用Poco库实现日志操作
C++ 使用Poco库实现日志操作 flyfish 文章目录 C++ 使用Poco库实现日志操作 日志输出到文件 日志输出到控制台 日志同时输出到文件和控制台 示例:将异常输出到日志 日志输出到文件 ...
- C++ 使用Poco库操作SQLite数据库
C++ 使用Poco库操作SQLite数据库 flyfish 文章目录 C++ 使用Poco库操作SQLite数据库 数据库插入记录 数据库插入记录方式2 数据库插入记录方式3 更方便的数据库插入记录 ...
最新文章
- 广西区计算机一级考试操作题,全国高校计算机等级考试(广西考区)一级笔试试题卷.doc...
- 从Golang调度器的作者视角探究其设计之道!
- Sbo通用数据选择功能的实现
- mysql数据迁移到sqlserver_一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、postgres、SQLITE...
- sp_decrypt
- python exchangelib 删除邮件_Python exchangelib在子文件夹中读取邮件 - python
- linux下c语言队列,C语言队列的实现
- Python 分类算法(1)——逻辑回归logistic regression之代码实现(2)
- eclipse 不自动弹出提示(alt+/快捷键失效) 快捷键
- Mysql组复制(MGR)——监控
- 60行代码爬取知乎神回复
- TCL2010年校园招聘笔试,一面———我的第一次应聘
- pd.read_excel出现ValueError: Unknown engine: openpyxl解决方案
- 手机加速度传感器在Android横竖屏切换中的应用
- 在虚拟机上搭建云平台环境(5)yum配置
- 电容电流状态观测器的三相LCL型PWM变流器控制
- 免费获取歌词API 可下载歌词
- 大数据NiFi(十四):数据来源和变量及表达式
- win8计算机无法安装打印机驱动,win8怎么安装打印机驱动
- 木材材积表快速计算器_原木材积表(运算表)
热门文章
- vue中模糊搜索keyup在中文输入法下输入英文无效的解决方法
- Baumer工业相机堡盟相机如何使用HDR高动态范围功能( HDR功能的优点和行业典型应用)(C++)(C#)
- ArcEngine9.3编辑工具条的实现
- git使用心得及第一次使用git上传代码到公司服务器
- linux文件归档管理
- Android --- SQLite helper 的 onCreate 和 onUpgrade 不调用
- Ubuntu下命令行方式对PDF文件进行缩放、合并、拆分
- 苹果系统地图定位服务器,iOS 系统地图实现及定位
- python饼图显示百分比怎么设置_python使用Matplotlib绘制饼图
- 如何取一个好域名?分享几个小技巧