详解Node.js API系列 Crypto加密模块(2) Hmac

释放双眼,带上耳机,听听看~!

简介

随着互联网的发展,MD5已经变得越来越不安全了,黑客可以通过彩虹表,查出MD5值所对应的密码,为了解决这个问题,很多网站都开始采用需要密钥加密的Hmac算法。

Hmac算法

HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。

认证流程

(1) 先由客户端向服务器发出一个验证请求。

(2) 服务器接到此请求后生成一个随机数并通过网络传输给客户端(此为挑战)。

(3) 客户端将收到的随机数提供给ePass,由ePass使用该随机数与存储在ePass中的密钥进行HMAC-MD5运算并得到一个结果作为认证证据传给服务器(此为响应)。

(4) 与此同时,服务器也使用该随机数与存储在服务器数据库中的该客户密钥进行HMAC-MD5运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户

BAE加密验证

bae的PHP代码签名参考


1
2
1Signture = urlencode(base64_encode(hash_hmac('sha1', Content, SecretKey,true)))
2
  • SecretKey 加密的要是

  • Content 传输的内容

  • sha1生成的算法

来源:http://blog.whattoc.com/2013/09/22/nodeapi_crypto2/

Node.js版本的


1
2
3
1Signture = require('crypto').createHmac('sha1', SecrectKey).
2        update(content).digest().toString('base64');
3

给TA打赏
共{{data.count}}人
人已打赏
安全技术

哈希(Hash)与加密(Encrypt)的基本原理、区别及工程应用

2021-8-18 16:36:11

安全技术

C++ 高性能服务器网络框架设计细节

2022-1-11 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索