HMAC:哈希消息认证码 ( Hash-based Message Authentication Code )

HMAC是密钥相关的哈希算法

使用 HMAC 进行加密的Node实现的一种方法:

"use strict";//引入crypto内置模块
const crypto = require("crypto");

//实例化一个hmac对象,使用md5进行加密,加密密钥是secret-key
const hmac = crypto.createHmac("md5", "secret-key");

//使用hmac的update方法添加需要加密的内容
hmac.update("This is what needs to be encrypted");

//将加密内容转换成十六进制数,并在控制台打印
console.log(hmac.digest("hex"));

注:

1.使用hmac加密是需要密钥的;

2.密钥在crypto的createHmac方法的第二个参数传入;

3.密钥不同,经过加密得到的结果就不同

4.使用hmac对数据进行加密的 其它方法

Node.js 内置模块crypto加密模块(3) HMAC的更多相关文章

  1. Node.js 内置模块crypto加密模块(4) Diffie Hellman

    Diffie-Hellman( DH ):密钥交换协议/算法 ( Diffie-Hellman Key Exchange/Agreement Algorithm ) 百科摘录: Diffie-Hell ...

  2. Node.js 内置模块crypto加密模块(5) RSA

    RSA加密算法 写在前面: 了解RSA算法的原理请查看下面的文章 一文搞懂 RSA 算法 来源:简书  作者:somenzz 在使用 Node 进行 RSA 加密之前我们首先需要获取RSA公共和私有密 ...

  3. Node.js 内置模块crypto加密模块(2) AES

    AES:高级加密标准 ( Advanced Encryption Standard ) AES是一种对称加密算法:加密需要密钥,且加密密钥和解密密钥相同 下面是AES加密的Node实现: " ...

  4. Node.js 内置模块crypto加密模块(1) MD5 和 SHA

    MD5:消息摘要算法(Message-Digest Algorithm) SHA家族:安全散列算法( Secure Hash Algorithm ) 1.首先看一个简单的加密 "use st ...

  5. Node.js 内置模块crypto使用事件方法(onreadable)加密的一些问题

    javaScript代码如下: 'use strict'; const crypto = require('crypto'); //实例化一个AES加密对象 const aesEncrept = cr ...

  6. [Node.js] Gzip + crypto in stream

    We can using gzip and crypto with stream: const fs = require('fs') const zlib = require('zlib') cons ...

  7. Node.js 内置模块fs(文件系统)

    fs模块的三个常用方法 1.fs.readFile() -- 读文件 2.fs.writeFile() -- 写文件 3.fa.stat() -- 查看文件信息 fs模块不同于其它模块的地方是它有异步 ...

  8. Node.js 内置模块fs的readdir方法 查看某个文件夹里面包含的文件内容

    fs.readdir(path[, options], callback) 例: "use strict"; const fs = require("fs"); ...

  9. Node.js 内置模块Stream(流)

    "流"是一种抽象的数据结构 通过使用"流"可以将一段数据分割成几段,并按顺序传输,使用"流"可以降低对系统性能的要求,减少对CPU的消耗 S ...

随机推荐

  1. 2 《锋利的jQuery》jQuery选择器

    tip1:jquery检查某个元素是否存在:if($("#tt").length>0){}或者if($("#tt")[0]){} 先说css选择器有: 标 ...

  2. CSS相对|绝对(relative/absolute)定位

    1.破坏性和包裹性 position:absolute与float:left,两者有两大共性:包裹性,破坏性. 包裹性 包裹性换种说法就是让元素inline-block化,例如一个div标签默认宽度是 ...

  3. vue.use解析

    vue.use源码: Vue.use = function (plugin) { /*判断插件是否已引入*/ if (plugin.installed) { return } //倒序为一个数组[] ...

  4. 51nod 80分算法题

    1537:见前几篇. 1627:题意:给定n,m的网格(10^5),初始状态为(1,1),你每次可以瞬移到右下方(不可以同行同列逗留)任何一个方格里,求移动到n,m的方案数. 一句话题解:首先很容易想 ...

  5. matlab unique()函数

    a = [30, 3,6; 19, 20, 20; 30,3,  6;] b=unique(a,'rows') 返回结果是: b = [19,    20 ,20; 30, 3, 6] b=uniqu ...

  6. LoadRunner监控图表与配置(一) 监控与图表

    1.“Monitoer”菜单-“Online Graphs”-“Open a new graph”打开监视图表列表. 实际上这些监视图表已经在Available Graphs中显示了出来. 2.常用监 ...

  7. 在node.js中建立你的第一个HTTp服务器

    这一章节我们将从初学者的角度介绍如何建立一个简单的node.js HTTP 服务器 创建myFirstHTTPServer.js //Lets require/import the HTTP modu ...

  8. Java微信公众平台开发_03_消息管理之被动回复消息

    GitHub源码:https://github.com/shirayner/weixin_gz 一.本节要点 1.回调url 上一节,我们启用服务器配置的时候,填写了一个服务器地址(url),如下图, ...

  9. Ajax动态切换按钮

    function changeAjax(str, obj) { var idx = $(obj).parent().parent().index(); if(confirm('确定执行操作么?')) ...

  10. L93

    Three Days to See(Excerpts) All of us have read thrilling stories in which the hero had only a limit ...