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
相關用法
- Node.js GM quality()用法及代碼示例
- Node.js GM resize()用法及代碼示例
- Node.js GM chop()用法及代碼示例
- Node.js GM drawPolyline()用法及代碼示例
- Node.js GM raise()用法及代碼示例
- Node.js GM paint()用法及代碼示例
- Node.js GM flop()用法及代碼示例
- Node.js GM segment()用法及代碼示例
- Node.js GM drawArc()用法及代碼示例
注:本文由純淨天空篩選整理自nidhi1352singh大神的英文原創作品 Node.js | crypto.pbkdf2Sync() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。