当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js crypto.scrypt(password, salt, keylen[, options], callback)用法及代码示例


crypto.scrypt(password, salt, keylen[, options], callback)

历史
版本变化
v18.0.0

将无效回调传递给 callback 参数现在会抛出 ERR_INVALID_ARG_TYPE 而不是 ERR_INVALID_CALLBACK

v15.0.0

密码和盐参数也可以是ArrayBuffer 实例。

v12.8.0、v10.17.0

maxmem 值现在可以是任何安全整数。

v10.9.0

添加了 costblockSizeparallelization 选项名称。

v10.5.0

添加于:v10.5.0


参数

提供异步 scrypt 实现。 Scrypt 是一种基于密码的 key 派生函数,其设计目的是在计算和内存方面成本高昂,以使蛮力攻击没有返回。

salt 应尽可能独特。建议盐是随机的并且至少 16 字节长。有关详细信息,请参阅NIST SP 800-132

在传递 passwordsalt 的字符串时,请考虑 caveats when using strings as inputs to cryptographic APIs

callback 函数使用两个参数调用:errderivedKeyerr 是 key 派生失败时的异常对象,否则 errnullderivedKey 作为 Buffer 传递给回调。

当任何输入参数指定无效值或类型时,将引发异常。

const {
  scrypt
} = await import('node:crypto');

// Using the factory defaults.
scrypt('password', 'salt', 64, (err, derivedKey) => {
  if (err) throw err;
  console.log(derivedKey.toString('hex'));  // '3745e48...08d59ae'
});
// Using a custom N parameter. Must be a power of two.
scrypt('password', 'salt', 64, { N: 1024 }, (err, derivedKey) => {
  if (err) throw err;
  console.log(derivedKey.toString('hex'));  // '3745e48...aa39b34'
});const {
  scrypt,
} = require('node:crypto');

// Using the factory defaults.
scrypt('password', 'salt', 64, (err, derivedKey) => {
  if (err) throw err;
  console.log(derivedKey.toString('hex'));  // '3745e48...08d59ae'
});
// Using a custom N parameter. Must be a power of two.
scrypt('password', 'salt', 64, { N: 1024 }, (err, derivedKey) => {
  if (err) throw err;
  console.log(derivedKey.toString('hex'));  // '3745e48...aa39b34'
});

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 crypto.scrypt(password, salt, keylen[, options], callback)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。