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


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


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

用法:

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

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



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

返回类型:它返回派生的 key 作为缓冲区。

以下示例说明了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);

输出:

<Buffer 3c f1 85 49 62 52 38 64 2a 4e b1 4c f6 25 2e 1e fc
d7 8e 01 c9 40 d7 84 63 5e 24 ef 71 0f 91 83 bb 6d 03 bd
73 43 33 ec 78 a9 78 c8 1f ea7a dc 8c a6 ...>

范例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




相关用法


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