当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Node.js crypto.hkdfSync()用法及代码示例

此方法提供了基于HMAC的同步Extract-and-Expand key 派生函数 key 派生。 keylen字节的 key 是使用摘要,给定 key ,salt和info导出的。

用法:

crypto.hkdfSync(digest, key, salt, info, keylen)

参数:此方法有五个参数。

  • digest:它必须是字符串。
  • key:最小长度— 1个字节,类型为字符串,缓冲区,数组缓冲区,类型数组,键对象或数据视图。
  • salt:必须提供,但长度可以为零且唯一。它可以是字符串,ArrayBuffer,Buffer,TypedArray或DataView类型。
  • info:必须提供,但长度可以为零,并且不能超过1024个字节。它的类型为字符串,缓冲区,数组缓冲区,类型数组,键对象或数据视图。
  • keylen:它是要生成的 key 的长度,并且必须大于0。它必须是b,其类型为number。

返回类型:返回派生键int的缓冲区形式。

范例1:



app.js


// Node.js program to demonstrate the
//  crypto.hkdfSync() Method.
  
// // Including crypto module 
import crypto from 'crypto'
  
//Implementing hkdfSync()
const Key = crypto.hkdfSync('sha512', 'key', 'salt', 'info', 64);
  
// Prints Buffer.
console.log(Key);

输出:

ArrayBuffer {
 [Uint8Contents]:<24 15 6e 2c 35 52 5b 
 aa f3 d0 fb b9 2b 73 4c 80 32 a1 10 a3 f1 2e 
 25 96 e4 41 e1 92 48 70 d8 4c 3a 50 06 52 a7 
 23 73 80 24 43 24 51 04 6f d2 37 ef ad 83 92 
 fb 68 6c 52 77 a5 9e 01 05 39 16 53>,
 byteLength:64
}

范例2:

app.js


// Node.js program to demonstrate the
// crypto.hkdfSync() Method.
  
// Including crypto module 
import crypto from 'crypto'
  
// Implementing hkdfSync()
const Key = crypto.hkdfSync('sha512', 'key', 'salt', 'info', 16);
  
// Prints Buffer.
console.log(Buffer.from(Key).toString('hex'));

输出:

24156e2c35525baaf3d0fbb92b734c80

范例3:

Javascript


// Node.js program to demonstrate the
// crypto.hkdfSync() Method.
  
// Including crypto module 
import crypto from 'crypto'
  
//Implementing hkdfSync()
const Key = crypto.hkdfSync('sha512', 'key', 'salt', 'info', 32);
  
// Prints Buffer.
console.log(Buffer.from(Key).toString('base64'));

输出:

JBVuLDVSW6rz0Pu5K3NMgDKhEKPxLiWW5EHhkkhw2Ew=

范例4:

Javascript


// Node.js program to demonstrate the
// crypto.hkdfSync() Method.
  
// Including crypto module 
import crypto from 'crypto'
  
// Implementing hkdfSync()
const Key = crypto.hkdfSync('sha512', 'key', 'salt', 'info', 32);
  
// Prints Buffer.
console.log(Buffer.from(Key).toString('ascii'));

输出:

$n,5R[*sP{9+sL 2!#q.%dAaHpXL

参考:https://nodejs.org/api/crypto.html#crypto_crypto_hkdfsync_digest_key_salt_info_keylen

相关用法


注:本文由纯净天空筛选整理自_sh_pallavi大神的英文原创作品 Node.js crypto.hkdfSync() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。