當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。