Node.js 中的 crypto.pbkdf2() 方法
crypto.pbkdf2(),也称为基于密码的密钥派生函数,提供了派生函数的异步实现。通过使用指定算法的 Hmac 摘要从密码、盐和迭代次数派生密钥。
语法
crypto.createHmac(algorithm, key, [options])
参数
以上参数描述如下:
password – 定义用于获取请求字节长度密钥的密码。可能的值为字符串、DataView、Buffer 等类型。
salt – 与密码类似,用于获取密钥。可能的值为字符串、DataView、Buffer 等类型。
iterations – 获取请求字节长度的所需密钥。它接受数值作为值。
keylen – 这是密钥的请求字节长度。它是数字类型。
digest – 此摘要值指定 Hmac 算法。默认值为“sha1”。
callback – 如果在异步模式下发生任何错误,它将在回调中处理。
示例
创建一个名为 pbkdf2.js 的文件并复制以下代码片段。创建文件后,使用以下命令运行此代码,如以下示例所示:
node pbkdf2.js
pbkdf2.js
// crypto.pbkdf2() demo example // Importing the crypto module const crypto = require('crypto'); // Defining the pbkdf2 with the following options crypto.pbkdf2('secret', 'salt', 100000, 64, 'sha512', (err, derivedKey) => { if (err) throw err; // Printing the derived key console.log("Key Derived: ",derivedKey.toString('hex')); });
输出
C:\home
ode>> node pbkdf2.js Key Derived: 3745e482c6e0ade35da10139e797157f4a5da669dad7d5da88ef87e47471cc47ed941c7ad618e8 27304f083f8707f12b7cfdd5f489b782f10cc269e3c08d59ae
示例
让我们再看一个例子。
// crypto.pbkdf2() demo example // Importing the crypto module const crypto = require('crypto'); // Defining the pbkdf2 with the following options crypto.pbkdf2('secret', 'salt', 100, 64, 'sha1', (err, derivedKey) => { if (err) throw err; // Printing the derived key console.log("Key Derived: ",derivedKey); console.log("Key Derived in hex: ",derivedKey.toString('hex')); console.log("Key Derived in base64: ",derivedKey.toString('base64')); });
输出
C:\home
ode>> node pbkdf2.js Key Derived: <Buffer b7 36 35 f7 c0 88 2e 1f c3 ba 6e 29 b1 4a f1 27 4d f8 48 28 b4 d1 8f cc 22 2e b5 74 45 5f 50 5d 3d 23 19 13 2d 84 e1 91 a7 83 e2 00 73 4e 37 4a 24 b6 ... > Key Derived in hex: b73635f7c0882e1fc3ba6e29b14af1274df84828b4d18fcc222eb574455f505d3d2319132d84e1 91a783e200734e374a24b62cfab65dfb5e9dc28ae147072419 Key Derived in base64: tzY198CILh/Dum4psUrxJ034SCi00Y/MIi61dEVfUF09IxkTLYThkaeD4gBzTjdKJLYs+rZd+16dwo rhRwckGQ==
广告