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
相关用法
- 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.pbkdf2() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。