crypto.createHmac()方法用於創建使用規定的“算法”和“ key ”的Hmac對象。
用法:
crypto.createHmac( algorithm, key, options )
參數:此方法接受avobe所述的三個參數,如下所述:
- algorithm:它取決於平台上的OpenSSL版本所支持的可訪問算法。它返回字符串。示例是sha256,sha512等。
- key:這是HMAC key ,用於創建加密的HMAC哈希。它返回字符串,Buffer,TypedArray,DataView或KeyObject。如果它是KeyObject,則其類型必須是秘密的。
- options:它是可選參數,用於控製流的行為。它返回一個對象。
返回類型:它返回Hmac對象。
以下示例說明了Node.js中crypto.createHmac()方法的使用:
範例1:
// Node.js program to demonstrate the
// crypto.createHmac() method
// Includes crypto module
const crypto = require('crypto');
// Defining key
const secret = 'GfG';
// Calling createHmac method
const hash = crypto.createHmac('sha256', secret)
// updating data
.update('GeeksforGeeks')
// Encoding to be used
.digest('hex');
// Displays output
console.log(hash);
輸出:
a08116905e92633e4f30eefd1276206b259305c8783642fc5b7f51c089187939
範例2:
// Node.js program to demonstrate the
// crypto.createHmac() method
// Defining myfile
const myfile = process.argv[1];
// Includes crypto and fs module
const crypto = require('crypto');
const fs = require('fs');
// Creating Hmac
const creathmac = crypto.createHmac('sha1', 'CS-Portal!');
// Creating read stream
const readfile = fs.createReadStream(myfile);
readfile.on('readable', () => {
// Calling read method to read data
const data = readfile.read();
if (data)
// Updating
creathmac.update(data);
else
{
// Encoding and displaying filename
console.log("The hmac object returns:",
`${creathmac.digest('hex')} ${myfile}`);
}
});
console.log("Program done!");
console.log();
輸出:
Program done! The hmac object returns:4605d44703c2620fc2574c9a9216bd3267457324 /run_dir/interp.js
參考: https://nodejs.org/api/crypto.html#crypto_crypto_createhmac_algorithm_key_options
相關用法
- Node.js GM quality()用法及代碼示例
- Node.js GM resize()用法及代碼示例
- Node.js GM chop()用法及代碼示例
- Node.js GM drawPolyline()用法及代碼示例
- Node.js GM raise()用法及代碼示例
- Node.js GM paint()用法及代碼示例
- Node.js GM flop()用法及代碼示例
- Node.js GM segment()用法及代碼示例
- Node.js GM drawArc()用法及代碼示例
注:本文由純淨天空篩選整理自nidhi1352singh大神的英文原創作品 Node.js | crypto.createHmac() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。