Node.js 中的 crypto.pbkdf2Sync() 方法
crypto.pbkdf2Sync(),也称为基于密码的密钥派生函数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 关键是:key(in hex) is: b73635f7c0882e1fc3ba6e29b14af1274df84828b4d18fcc222eb574455f505d key(in base64) is: tzY198CILh/Dum4psUrxJ034SCi00Y/Mii61dEVfUF0=