📜  Node.js crypto.pbkdf2Sync() 方法

📅  最后修改于: 2022-05-13 01:56:30.205000             🧑  作者: Mango

Node.js crypto.pbkdf2Sync() 方法

crypto.pbkdf2Sync()方法提供了一个异步的基于密码的密钥派生函数2 ,即 (PBKDF2) 实现。此外,实现了由摘要定义的特定 HMAC 摘要算法,以从所述密码、盐和迭代中导出所需字节长度 (keylen) 的密钥。

句法:

crypto.pbkdf2Sync( password, salt, iterations, keylen, digest )

参数:此方法接受上面提到的五个参数,如下所述:

  • 密码:它的类型为字符串、 Buffer 、 TypedArray 或 DataView
  • salt:它必须尽可能独特。但是,建议盐是任意的,并且在任何情况下都至少有 16 个字节长。它的类型为字符串、 Buffer、 TypedArray 或 DataView
  • 迭代次数:它必须是一个数字,并且应该设置得尽可能高。因此,迭代次数越多,派生密钥就越安全,但在这种情况下,完成所需的时间会更长。它是数字类型。
  • keylen:需要字节长度的key,类型为number。
  • 摘要:字符串类型的摘要算法。

返回类型:它将派生键作为缓冲区返回。

下面的示例说明了在 Node.js 中使用crypto.pbkdf2Sync() 方法

示例 1:

// Node.js program to demonstrate the 
// crypto.pbkdf2Sync() method
  
// Including crypto module
const crypto = require('crypto');
  
// Implementing pbkdf2Sync
const key = crypto.pbkdf2Sync('secret',
           'salt', 2000, 64, 'sha512');
  
// Prints buffer
console.log(key);

输出:


示例 2:

// Node.js program to demonstrate the 
// crypto.pbkdf2Sync() method
  
// Including crypto module
const crypto = require('crypto');
  
// Implementing pbkdf2Sync
const key = crypto.pbkdf2Sync('secret',
       'salt', 100000, 100, 'sha512');
  
// Prints key which is encoded and converted
// to string
console.log(key.toString('hex'));

输出:

3745e482c6e0ade35da10139e797157f4a5da669dad7d5da88ef87e4
7471cc47ed941c7ad618e827304f083f8707f12b7cfdd5f489b782f10cc269
e3c08d59ae04919ee902c99dba309cde75569fbe8e6d5c341d6f2576f6618c
589e77911a261ee964e2

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