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


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


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

用法:

crypto.pbkdf2( password, salt, iterations, keylen, digest, callback )

参数:此方法接受上述和以下所述的六个参数:



  • password:它可以保存字符串,Buffer,TypedArray或DataView类型的数据。
  • salt:它必须尽可能唯一。但是,建议盐是任意的,并且在任何情况下至少应为16个字节长。它的类型为字符串,缓冲区,TypedArray或DataView。
  • iterations:它必须是一个数字,并应设置得尽可能高。因此,迭代次数越多,派生 key 将越安全,但是在这种情况下,需要花费更多时间才能完成。它是数字类型。
  • keylen:它是所需字节长度的 key ,并且是数字类型。
  • digest:它是字符串类型的摘要算法。
  • callback:它是一个具有两个参数的函数,即err和DerivedKey。

返回类型:它返回派生的基于密码的 key 。

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

范例1:

// Node.js program to demonstrate the  
// crypto.pbkdf2() method 
  
// Including crypto module 
const crypto = require('crypto'); 
  
// Implementing pbkdf2 with all its parameters 
crypto.pbkdf2('secret', 'salt', 100000, 64, 
         'sha512', (err, derivedKey) => { 
  
  if (err) throw err; 
  
  // Prints derivedKey 
  console.log(derivedKey.toString('hex')); 
});

输出:

3745e482c6e0ade35da10139e797157f4a5da669dad7d5da88ef87e
47471cc47ed941c7ad618e827304f083f8707f12b7cfdd5f489b782
f10cc269e3c08d59ae

范例2:

// Node.js program to demonstrate the  
// crypto.pbkdf2() method 
  
// Including crypto module 
const crypto = require('crypto'); 
  
// Implementing pbkdf2 with all its parameters 
// but digest is null 
crypto.pbkdf2('secret', 'salt', 677, 6, 
          null, (err, derivedKey) => { 
  
  if (err)  
  { 
    console.log(err); 
  }  
  else
  { 
  
  // Prints derivedKey without encoding 
  console.log(derivedKey); 
      
     } 
});    

输出:在此,由于派生键未更改为字符串,因此返回缓冲区。

Buffer 71 1e 7b 7b 9b 53

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




相关用法


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