crypto.createHmac(algorithm, key[, options])
历史
版本 | 变化 |
---|---|
v15.0.0 | key 也可以是ArrayBuffer 或 CryptoKey。添加了编码选项。 key 不能包含超过 2 ** 32 - 1 个字节。 |
v11.6.0 |
|
v0.1.94 | 添加于:v0.1.94 |
参数
algorithm
<string>key
<string> | <ArrayBuffer> | <Buffer> | <TypedArray> | <DataView> | <KeyObject> | <CryptoKey>options
<Object> new stream.Transform([options])encoding
<string>key
是字符串时使用的字符串编码。
- 返回: <Hmac>
创建并返回使用给定 algorithm
和 key
的 Hmac
对象。可选的 options
参数控制流行为。
algorithm
取决于平台上OpenSSL 版本支持的可用算法。例如 'sha256'
、 'sha512'
等。在 OpenSSL 的最新版本中,openssl list -digest-algorithms
将显示可用的摘要算法。
key
是用于生成加密 HMAC 哈希的 HMAC key 。如果是
,则其类型必须是 KeyObject
secret
。
示例:生成文件的 sha256 HMAC
import { createReadStream } from 'fs'; import { argv } from 'node:process'; const { createHmac } = await import('node:crypto'); const filename = argv[2]; const hmac = createHmac('sha256', 'a secret'); const input = createReadStream(filename); input.on('readable', () => { // Only one element is going to be produced by the // hash stream. const data = input.read(); if (data) hmac.update(data); else { console.log(`${hmac.digest('hex')} ${filename}`); } });
const { createReadStream, } = require('node:fs'); const { createHmac, } = require('node:crypto'); const { argv } = require('node:process'); const filename = argv[2]; const hmac = createHmac('sha256', 'a secret'); const input = createReadStream(filename); input.on('readable', () => { // Only one element is going to be produced by the // hash stream. const data = input.read(); if (data) hmac.update(data); else { console.log(`${hmac.digest('hex')} ${filename}`); } });
相关用法
- Node.js crypto.createHmac()用法及代码示例
- Node.js crypto.createHash()用法及代码示例
- Node.js crypto.createHash(algorithm[, options])用法及代码示例
- Node.js crypto.createCipheriv()用法及代码示例
- Node.js crypto.createVerify()用法及代码示例
- Node.js crypto.createDiffieHellman()用法及代码示例
- Node.js crypto.createECDH()用法及代码示例
- Node.js crypto.createDiffieHellmanGroup()用法及代码示例
- Node.js crypto.createSign()用法及代码示例
- Node.js crypto.createDecipheriv()用法及代码示例
- Node.js crypto.constants用法及代码示例
- Node.js crypto.checkPrime()用法及代码示例
- Node.js crypto.checkPrimeSync()用法及代码示例
- Node.js crypto.randomFill()用法及代码示例
- Node.js crypto.randomFillSync(buffer[, offset][, size])用法及代码示例
- Node.js crypto.randomInt([min, ]max[, callback])用法及代码示例
- Node.js crypto.publicEncrypt()用法及代码示例
- Node.js crypto.publicDecrypt()用法及代码示例
- Node.js crypto.pbkdf2Sync(password, salt, iterations, keylen, digest)用法及代码示例
- Node.js crypto.hkdfSync()用法及代码示例
- Node.js crypto.randomFillSync()用法及代码示例
- Node.js crypto.sign()用法及代码示例
- Node.js crypto.webcrypto用法及代码示例
- Node.js crypto.generateKeyPairSync(type, options)用法及代码示例
- Node.js crypto.scrypt(password, salt, keylen[, options], callback)用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 crypto.createHmac(algorithm, key[, options])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。