`
xidajiancun
  • 浏览: 454428 次
文章分类
社区版块
存档分类
最新评论

HMAC-SHA1各语言版本实现

 
阅读更多

在各大开放平台大行其道的互联网开发潮流中,调用各平台的API接口过程中,无一例外都会用到计算签名值(sig值)。而在各种计算签名的方法中,经常被采用的就是HMAC-SHA1,现对HMAC-SHA1做一个简单的介绍:

HMAC,散列消息鉴别码,基于密钥的Hash算法认证协议。实现原理为:利用已经公开的Hash函数和私有的密钥,来生成固定长度的消息鉴别码;

SHA1、MD5等Hash算法是比较常用的不可逆Hash签名计算方法;

BASE64,将任意序列的8字节字符转换为人眼无法直接识别的符号编码的一种方法;

各个语言版本的实现为:

Python版:

import hmac

import hashlib

import base64

hmac.new(Token,data,hashlib.sha1).digest().encode('base64').rstrip()
PHP版:
base64_encode(hash_hmac("SHA1",clientStr,Token , true))

C++版(Openssl):

HMAC( EVP_sha1(),

/*key data*/ strKey.data(),
/*key len*/ strKey.size(),
/*data */(unsigned char*) strRandom.data(),
/*data len*/ strRandom.size(), digest, &digest_len))
Shell版:
echo -n '3f88a95c532bea70' | openssl dgst -hmac '123' -sha1 -binary | base64

分享到:
评论

相关推荐

    HMac_SHA512_F.zip_HMAC-SHA256_hmac sha256_hmac-sha512_hmac_sha25

    SHA512、HMAC软件实现代码,VC++语言写的HMAC_SHA1和HMAC_SHA256算法。使用了脚本对象

    e语言-[CryptAPI]纯windowsAPI计算AES/DEA/3DES,RSA加密解密,RSA签名验签,HMAC,散列等

    SHA/SHA1/SHA256/SHA384/SHA512HMAC算法,支持 hmac-md5 hmac-sha1 hmac-sha256 hmac-384 hmac-sha512PEM文件纯易语言解析,载入,导出FPX文件导入用于winhttp API 双向验证 等等(winhttpAPI 源码请自行在论坛里...

    易语言HMAC_SHA256算法源码

    易语言写的HMAC_SHA1和HMAC_SHA256算法。使用了脚本对象

    VB6_SHA256

    VB6.0语言,SHA256哈希算法源码,做成函数,可以直接调用!! 区别于之前上传的“SHA256哈希算法VB源码”: “SHA256哈希算法VB源码”使用的是sha256算法详细规则计算的,较长; 本函数是直接调用SHA256的类算法,较...

    易语言Base64_hmac_sha1加密算法源码-易语言

    易语言Base64_hmac_sha1加密算法源码 最近在研究 阿里云的 需要用到 Base64_hmac_sha1 算法加密,找了好多,都是JS版的 刚从别的地方找到个 纯算法的 只用到核心库,就实现的代码, 速度也比JS的快很多,特整理了下...

    api_auth:用于Rails和HTTP客户端的HMAC身份验证

    它实现了Amazon Web Services使用的相同身份验证方法(HMAC-SHA1)。 gem将在客户端对您的请求进行签名,并在服务器端对该签名进行身份验证。 如果您的服务器资源被实现为Rails ActiveResource,它将与之集成。 它...

    基于sha的hmac,python版本实现

    用python实现,不是直接导包,根据密码学课本上描述过程完成。

    pbkdf2:PBKDF2密钥派生功能的D实现

    它使用HMAC作为伪随机函数,并使用SHA1作为默认哈希函数。 用法示例: import std.string : representation;import std.digest.sha ;import kdf.pbkdf2;auto dk = pbkdf2( " password " .representation, " salt " ...

    Matroschka:Python隐写术工具可隐藏图像或图像中的文本

    Матрёшка 关于 Matroshka是用纯Python编写的命令行隐写术工具。... 此外,通过将嵌入的hmac哈希与提取的隐藏消息的HMAC-SHA256和用户提供的mac密码进行比较,可以对解密的机密进行身份验证。 笔记 这是一个

    语音识别(ASR)WebSocket协议WebAPI开发文档1

    1. 通过hmac-sha256计算签名,向服务器端发送WebSocket协议握手请求 2. 握手成功之后,通过WebSocket连接上传和接收数据 3. 请求

    精益密码哈希「Lean Password Hasher」-crx插件

    使用HMAC-SHA1。 精益密码哈希器可让您轻松创建安全的和特定用途的密码。 您只需要记住一个相当长的主密钥即可。 此扩展程序将打开一个小弹出窗口,尝试从当前选项卡的域中确定参数,要求输入主密码并将哈希值复制到...

    Lean Password Hasher-crx插件

    使用HMAC-SHA1。 精益密码哈希器可让您轻松创建安全的和特定用途的密码。 您只需要记住一个相当长的主密钥即可。 此扩展程序将打开一个小弹出窗口,尝试从当前选项卡的域中确定参数,要求输入主密码并将哈希值复制到...

    Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)

    生活中我们经常会遇到一些加密算法,今天我们就聊聊这些加密算法的Python实现。部分常用的加密方法基本都有对应的Python库,基本不再需要我们用代码实现具体算法。 MD5加密 全称:MD5消息摘要算法(英语:MD5 Message...

    基于SNMP/MIB的网络数据获取系统设计与实现

    SNMPv3安全: 支持HMAC-SHA-96,HMAC-MD5-96,CBC-DES和128位AES加密。 稳健的SMIv1和SMIv2 MIB解析器: 无缝解析任何OEM供应商的MIB定义。 MIB加载: 可以选择从预编译文件、串行文件或数据库加载MIB文件以增强...

    常见的加密算法实现源码分享-Java语言编写

    常见的加密算法实现--Java语言编写,花费一个多月认真整理出来的可直接运行的源码文件。下载RAR文件后,对压缩包进行解压后,里面有详细的例子,导入IDEA或者ECLIPSE后,运行指定的Java文件,即可以直接使用。压缩包...

    Node.js中AES加密和其它语言不一致问题解决办法

    网上说,通常的nodejs AES和其他语言实现不一样。好吧~~或许吧。nodejs的crypto模块。 代码如下:var crypto = require(‘crypto’);  var data = “156156165152165156156”; console.log(‘Original cleartext: ...

    RFC中文文档-txt

    RFC2404 在ESP和AH中使用HMAC-SHA-1-96 RFC2406 IP 封装安全有效载荷 (ESP) RFC2407 Internet IP 用于解释ISAKMP的安全域 RFC2408 Internet 安全关联和键管理协议 (ISAKMP) RFC2409 Internet密钥交换(IKE) RFC2410...

    实时消息通信平台Centrifugo.zip

    提供 iOS和Android平台SDK采用Redis实现分布式部署.SHA-256 HMAC连接认证和隐私保护多种类型的频道 – 私有, 用户限制,客户端限制通过名字空间灵活配置频道支持即时消息和历史消息支持用户加入/离开消息网络重连后...

    JWT Debugger-crx插件

    语言:English JWT.io调试器作为Web扩展 您是否发现自己一直在浏览器的控制台中调试JWT?...-支持HS256 / 384/512(HMAC + SHA)签名。 -支持RS256 / 384/512(RSA)签名。 -支持PS256 / 384(RSA)签名。 -支

Global site tag (gtag.js) - Google Analytics