Qt哈希算法 hmacSha1

//Qt哈希算法 hmacSha1
#include <QCryptographicHash>/*!* \brief Qt hmacSha1 哈希算法* \param key         加密需要的key* \param baseString  需要加密的字符串* \return QByteArray 加密后的数据内存中的ASCII码*/
QByteArray hmacSha1(QByteArray key, QByteArray baseString){int blockSize = 64; // HMAC-SHA-1 block size, defined in SHA-1 standardif (key.length() > blockSize) { // if key is longer than block size (64), reduce key length with SHA-1 compressionkey = QCryptographicHash::hash(key, QCryptographicHash::Sha1);}QByteArray innerPadding(blockSize, char(0x36)); // initialize inner padding with char "6"QByteArray outerPadding(blockSize, char(0x5c)); // initialize outer padding with char "/"// ascii characters 0x36 ("6") and 0x5c ("/") are selected because they have large// Hamming distance (http://en.wikipedia.org/wiki/Hamming_distance)for (int i = 0; i < key.length(); i++) {innerPadding[i] = innerPadding[i] ^ key.at(i); // XOR operation between every byte in key and innerpadding, of key lengthouterPadding[i] = outerPadding[i] ^ key.at(i); // XOR operation between every byte in key and outerpadding, of key length}// result = hash ( outerPadding CONCAT hash ( innerPadding CONCAT baseString ) ).toBase64QByteArray total = outerPadding;QByteArray part = innerPadding;part.append(baseString);total.append(QCryptographicHash::hash(part, QCryptographicHash::Sha1));QByteArray hashed = QCryptographicHash::hash(total, QCryptographicHash::Sha1);/// 注意——>把字符串hashed转换为Hex,内存中的ASCII码arrayFromHexStringQByteArray arrayFromHexString = QByteArray::fromHex(hashed.toHex());qDebug()<<"hmacSha1内存中的ASCII码 arrayFromHexString \n"<<arrayFromHexString.toHex();return arrayFromHexString;
}

Qt 实现 HMAC_SHA1 哈希算法相关推荐

  1. ELFhash - 优秀的字符串哈希算法

    原 ELFhash - 优秀的字符串哈希算法 分类:算法杂论算法精讲数据结构 (1424)  (2) 1.字符串哈希: 我们先从字符串哈希说起 在很多的情况下,我们有可能会获得大量的字符串,每个字符串 ...

  2. 哈希分布与一致性哈希算法简介

    前言 在我们的日常web应用开发当中memcached可以算作是当今的标准开发配置了.相信memcache的基本原理大家也都了解过了,memcache虽然是分布式的应用服务,但分布的原则是由clien ...

  3. 一致性哈希算法以及其PHP实现

    在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括:  轮循算法(Round Robin).哈希算法(HASH).最少连接算法(Least Connection).响应速度算法(Respons ...

  4. 一致性hash算法虚拟节点_一致性哈希算法——虚拟节点

    一致性哈希算法--虚拟节点 一致性哈希算法是分布式系统中常用的算法.比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是 ...

  5. 感知哈希算法——找出相似的图片

    参考Neal Krawetz博士的这篇文章, 实现这种功能的关键技术叫做"感知哈希算法"(Perceptual Hash Algorithm), 意思是为图片生成一个指纹(字符串格 ...

  6. 用拉链法实现哈希算法的运算

    package lirui.find;import java.util.LinkedList;/*** Created by lirui on 14-8-13.* 用拉链法实现哈希算法的运算*/ pu ...

  7. 五分钟带你了解哈希算法

    导读: 当新人在学区块链技术的时候,都会听到哈希和哈希算法,这似乎是无处不在的安全性保证.例如比特币或者以太坊这种运行去中心化网络和共识的机器,都会有上万个节点通过P2P连接,并且需要"无需 ...

  8. 一次失败的面试,复习一次一致性哈希算法

    来自公众号:孤独烟 本文故事绝对真实,如有雷同,绝对不是巧合! 于是呢,烟哥提前十分钟在公司里头找了一个厕所的坑位,然后进去随手一锁门-.(以下省略10000字)- 唉- 我竟然又带薪上厕所了,而且上 ...

  9. 一致性哈希算法的理解

    关于一致性哈希算法,网上有很多博文都有讲解.推荐2个. http://blog.codinglabs.org/articles/consistent-hashing.html http://blog. ...

最新文章

  1. 2022-2028年中国氨基酸表面活性剂行业研究及发展前瞻报告
  2. 在CentOS 6.9 x86_64的nginx 1.12.2上开启ngx_http_geo_module模块实录
  3. OpenCV java 图片处理,蒙太奇图片(13)
  4. androidstudio 日历视图怎么显示农历_记事日历-记事与时间管理工具
  5. VC++读取AVi视频文件
  6. 004_Maven构建生命周期
  7. adadelta算法_神经网络中常用的优化算法
  8. 简单的自动更新程序实现
  9. 开发环境eclipse for Mac 下的常用快捷键汇总(基本参照Win系,将Ctrl换为Command)
  10. 沈逸老师PHP魔鬼特训笔记(3)
  11. 使用Mono Runtime Bundle制作安装包让C#桌面应用程序脱离net framework
  12. 【网络架构理论系列】简述分布式的定义、分类、技术发展历史进程
  13. 计算机换算单位 gb,gb和mb的换算-KB,MB,GB之间的换算关系
  14. 如何使用jquery插件
  15. 人力资源管理专业知识与实务(初级)【10】
  16. 李开复写给中国大学生的七封信【7/7】
  17. 苹果生产日期对照表2020_苹果又开发布会,确定于11月11日举办特别活动 | AirPods Pro 免费换新计划...
  18. [javaws]jnlp介绍及使用
  19. 微信小程序后台持续定位功能使用
  20. “特斯拉杀手们”真正的敌人来了

热门文章

  1. GC8872 Globalchip国产低成本电机驱动芯片,可替代TI的DRV8872 一款具有故障报告功能的 3.6A 刷式直流电机驱动器(PWM控制)
  2. 微信小程序生成二维码方法1
  3. windows10 扩容C盘空间
  4. 解决中文乱码的一些心得
  5. Redis 查看端口使用情况
  6. Kali Linux忘记密码怎么办?
  7. 液晶屏COG封装技术-工业显示领域主流
  8. 简明 Vim 练级攻略 [转至 酷 壳 – CoolShell.cn]
  9. 离线安装Python软件包的方法
  10. Linux实现ppp拨号4G模块联网全球APN之亚美尼亚(Armenian)