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


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

语法

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

参数

上述参数描述如下,−

  • password – 密码,用于获取请求字节长度的密钥。可能的值包括 string、DataView、Buffer 等类型。

  • salt – 类似于获取密钥的密码。可能的值包括 string、DataView、Buffer 等类型。

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

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

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

示例

创建一个名为 pbkdf2Sync.js 的文件,并复制以下代码段。创建文件后,按照示例中所示使用以下命令运行此代码,−

node pbkdf2Sync.js

pbkdf2Sync.js

 现场演示

// crypto.pbkdf2() demo example

// Importing the crypto module
const crypto = require('crypto');

// Defining the pbkdf2 with the following options
const pbkdfKey = crypto.pbkdf2Sync('secret', 'salt', 100000, 64, 'sha512');
// Printing the derivedKey
console.log("key is: ",pbkdfKey.toString('hex'));

输出

C:\home
ode>> node pbkdf2Sync.js key is: 3745e482c6e0ade35da10139e797157f4a5da669dad7d5da88ef87e47471cc47ed941c7ad618e8 27304f083f8707f12b7cfdd5f489b782f10cc269e3c08d59ae

示例

我们再看另一个示例。

 现场演示

// crypto.pbkdf2Sync () demo example

// Importing the crypto module
const crypto = require('crypto');

// Defining the pbkdf2Sync with the following options
const pbkdfKey = crypto.pbkdf2Sync('secret', 'salt', 100, 32, 'sha1');
// Printing the derivedKey
console.log("key is: ",pbkdfKey);
console.log("key(in hex) is: ",pbkdfKey.toString('hex'));
console.log("key(in base64) is: ",pbkdfKey.toString('base64'));

输出

C:\home
ode>> node pbkdf2Sync.js key is: <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=

更新于: 2021-05-20

974 次浏览

开始您的 职业

完成课程并获得认证

开始该做
广告