在线HMAC计算器:

https://1024tools.com/hmac

http://tool.oschina.net/encrypt?type=2

shell:

# 随机字符串5位
    rand=$(date +%s%N | sha1sum | head -c 5)
    echo "rand    :     $rand"
    # 准备签名字符串
    signStr="deviceID=$deviceID&rand=$rand&timestamp=$timestamp&userKey=$userKey"
    echo "signStr    :    $signStr"
    # 签名
    sign=$(echo -n $signStr | openssl sha1 -hmac $secret | awk '{print $2}')
    echo "sign    :     $sign"
    # 拼接签名字符串
    queryStr="$signStr&sign=$sign"
    echo "queryStr:    $queryStr"

c代码1:

 #include <openssl/sha.h>unsigned char *SHA1(const unsigned char *d, unsigned long n,unsigned char *md)
-------------------------------------------------------------------------------unsigned char sign[EVP_MAX_MD_SIZE] = {'\0'};  unsigned int sign_len = 0;  char mdString[41] = {'\0'}; int i;HMAC(EVP_sha1(), secret, strlen(secret), (const unsigned char *)signStr, strlen(signStr), sign, &sign_len);//转成16进制for(i = 0; i < 20; i++)    sprintf(&mdString[i*2], "%02x", (unsigned int)sign[i]);      printf("strlen(%d),HMAC sign: %s\n", strlen(mdString), mdString);

或者:

c代码2:

 int SHA1_Init(SHA_CTX *c);int SHA1_Update(SHA_CTX *c, const void *data, unsigned long len);int SHA1_Final(unsigned char *md, SHA_CTX *c);--------------------------------------------------------------------------------

HMAC_CTX ctx;

HMAC_CTX_init(&ctx);

// Using sha1 hash engine here.

// You may use other hash engines. e.g EVP_md5(), EVP_sha224, EVP_sha512, etc

HMAC_Init_ex(&ctx, key, strlen(key), EVP_sha1(), NULL);

HMAC_Update(&ctx, (unsigned char*)&data, strlen(data));

HMAC_Final(&ctx, result, &len);

HMAC_CTX_cleanup(&ctx);

printf("HMAC digest: ");

for (int i = 0; i != len; i++)

printf("%02x", (unsigned int)result[i]);

使用 HMAC-SHA1 算法相关推荐

  1. HASH和HMAC(3):SHA-1算法原理

    协议标准:https://csrc.nist.gov/CSRC/media/Publications/fips/180/2/archive/2002-08-01/documents/fips180-2 ...

  2. C语言hmacsha1,在C中执行hmac sha1

    我正在尝试生成Hmac-sha1的一小段代码.我被要求使用用于SHA1计算的OpenSSL库自己编码hmac实现. 后"wiki'ing的算法,这里是我有什么below.I已经使用的输入与R ...

  3. ASP.NET中使用MD5和SHA1算法加密

    你的主页或者你管理的网站有各种密码需要保护,把密码直接放在数据库或者文件中存在不少安全隐患,所以密码加密后存储是最常见的做法.在ASP.NET中实现加密非常容易..NET SDK中提供了CookieA ...

  4. SHA-1算法c语言实现

    安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signatu ...

  5. 硬件安全 (1) —— SHA-1算法在FPGA上的实现

    SHA-1 算法在FPGA上的实现 - 1 背景介绍 散列函数(英语:Hash function)又称散列算法.哈希函数,是一种从任何一种数据中创建小的数字"指纹"的方法.散列函数 ...

  6. ASP.NET中密码保护,MD5和SHA1算法的使用

    ASP.NET中密码保护,MD5和SHA1算法的使用 你的主页或者你管理的网站有各种密码需要保护,把密码直接放在数据库或者文件中存在不少安全隐患,所以密码加密后存储是最常见的做法.在ASP.NET中实 ...

  7. java sha1hash 算法_javaweb使用sha1算法登录加密的整个过程

    sha1算法还是比较潮流的算法并且可以简单使用的算法,建议新手可以选用sha1算法. 百度百科对sha1算法的解释:安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 ( ...

  8. sha1原型 c语言,SHA1算法实现(C语言)

    SHA1算法实现 1. SHA1算法简介 对于长度小于2^64位的消息,SHA1产生一个160位的消息摘要.主要用于验证数据的完整性. 2. SHA1算法原理 a. 数据填充规则 对消息填充,使得其比 ...

  9. JavaScript:实现加密哈希SHA-1 算法(附完整源码)

    JavaScript:实现加密哈希SHA-1 算法 // main variables const CHAR_SIZE = 8/*** Adds padding to binary/hex strin ...

  10. Python:实现sha1算法(附完整源码)

    Python:实现sha1算法 import argparse import hashlib # hashlib is only used inside the Test class import s ...

最新文章

  1. Typesetting Engine_ Presto
  2. 使用ajax和history.pushState无刷新改变页面URL
  3. php顺序、二分查找
  4. 哪里可以学python编程-Python编程适合哪些人学?老男孩Python教程
  5. IoC(Inversion of Control,控制反转)模式
  6. Linux:让普通用户临时性获得root用户权限
  7. python模块详解 time与date time
  8. mac 硬盘未推出 硬盘无法读取_在Mac上(正确的)格式化U盘
  9. 嵌入式linux svn,Linux下配置subversion使其支持svn+ssh方式访问
  10. ABP Framework 5.2 RC 版本发布及新增功能介绍
  11. jq 多个div从右向左依次显示_jquery – Animate绝对div到左边:0然后到右边:0和循环...
  12. mysql添加序列触发器_Oracle中使用触发器(trigger)和序列(sequence)模拟实现自增列实例...
  13. elm的 java包_Elm架构
  14. Asp.Net IIS 管理类(全)
  15. 2.《JSP应用开发案例教程》第1章 JSP概述
  16. 陶瓷PCB电路板生产工艺
  17. java中object是什么_Java中的Object是什么?
  18. dataFrame(DF)将数据插入ES时报错 org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: Cannot detect E
  19. 三国杀服务器维修,三国杀云服务器
  20. 苹果开发者账号申请流程完整版

热门文章

  1. 常见问题-瑞友天翼应用虚拟化系统安装之前需要做什么准备
  2. java工程师的关键绩效指标_绩效考核表(JAVA高级工程师)
  3. 屏幕坏了无法使用计算机调试,vivo手机屏幕坏了连接电脑没反应怎么办
  4. 操作系统实验报告 lab6
  5. hp服务器系统检测,HP服务器检测步骤
  6. ubuntu + usb转RS232驱动
  7. 高数篇(二)-- 傅里叶变换 VS 拉普拉斯变换
  8. 医院药品管理系统java sql_医院药品管理系统设计(Netbeans,Myeclipse,MySQL,SQLServer)
  9. python3安装详细教程
  10. html自动计算时间代码,原生JavaScript实现日期计算器功能