Node.js 中的 crypto.pbkdf2Sync() 方法

crypto.pbkdf2 Sync(),也称为基于密码的密钥派生函数 2,提供了派生函数的同步实现。密钥是通过使用指定算法的 Hmac 摘要从密码、salt 和迭代中得出的。这将在同步过程中创建密钥。

语法

crypto.createHmac(algorithm, key, [options])

参数

上述参数描述如下 -

  • password - 为获取请求字节长度的密钥而定义的密码。可能的值是字符串、DataView、Buffer 等类型。

  • salt  – 类似于获取密钥的密码。可能的值是字符串、DataView、Buffer 等类型。

  • iterations- 获取所需字节长度的所需密钥。它接受该值作为数字。

  • keylen  – 这是请求的密钥字节长度。它是类型号。

  • 摘要 – Hmac 算法由该摘要值指定。默认值为“sha1”

示例

创建一个具有名称的文件 -pbkdf2Sync.js并复制以下代码片段。创建文件后,使用以下命令运行此代码,如下例所示 -

node pbkdf2Sync.js

pbkdf2Sync.js

// crypto.pbkdf2() 演示示例

// 导入加密模块
const crypto = require('crypto');

// 使用以下选项定义 pbkdf2
const pbkdfKey = crypto.pbkdf2Sync('secret', 'salt', 100000, 64, 'sha512');
// 打印派生密钥
console.log("关键是: ",pbkdfKey.toString('hex'));

输出结果

C:\home\node>> node pbkdf2Sync.js
关键是:
3745e482c6e0ade35da10139e797157f4a5da669dad7d5da88ef87e47471cc47ed941c7ad618e8
27304f083f8707f12b7cfdd5f489b782f10cc269e3c08d59ae

示例

让我们再看一个例子。

// crypto.pbkdf2Sync() 演示示例

// 导入加密模块
const crypto = require('crypto');

// 使用以下选项定义 pbkdf2Sync
const pbkdfKey = crypto.pbkdf2Sync('secret', 'salt', 100, 32, 'sha1');
// 打印派生密钥
console.log("关键是: ",pbkdfKey);
console.log("key(in hex) is: ",pbkdfKey.toString('hex'));
console.log("key(in base64) is: ",pbkdfKey.toString('base64'));

输出结果

C:\home\node>> node pbkdf2Sync.js
关键是: <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>
key(in hex) is:
b73635f7c0882e1fc3ba6e29b14af1274df84828b4d18fcc222eb574455f505d
key(in base64) is: tzY198CILh/Dum4psUrxJ034SCi00Y/Mii61dEVfUF0=