crypto.argon2Sync(algorithm, parameters)


稳定性: 1.2 - 发布候选版

  • algorithm <string> Argon2 的变体,可以是 "argon2d""argon2i""argon2id" 之一。
  • parameters <Object>
  • 返回:<Buffer>

提供同步的 氩气2 实现。Argon2 是一种基于密码的密钥派生函数,设计上在计算和内存方面都很昂贵,以使暴力破解攻击不划算。

🌐 Provides a synchronous Argon2 implementation. Argon2 is a password-based key derivation function that is designed to be expensive computationally and memory-wise in order to make brute-force attacks unrewarding.

nonce 应尽可能唯一。建议 nonce 是随机的,并且至少 16 字节长。详情请参见 NIST SP 800-132

🌐 The nonce should be as unique as possible. It is recommended that a nonce is random and at least 16 bytes long. See NIST SP 800-132 for details.

在为 messagenoncesecretassociatedData 传递字符串时,请考虑 将字符串用作加密 API 输入时的注意事项

🌐 When passing strings for message, nonce, secret or associatedData, please consider caveats when using strings as inputs to cryptographic APIs.

当密钥派生失败时,会抛出异常,否则派生的密钥将作为 Buffer 返回。

🌐 An exception is thrown when key derivation fails, otherwise the derived key is returned as a Buffer.

当任何输入参数指定无效的值或类型时,会抛出异常。

🌐 An exception is thrown when any of the input arguments specify invalid values or types.

const { argon2Sync, randomBytes } = await import('node:crypto');

const parameters = {
  message: 'password',
  nonce: randomBytes(16),
  parallelism: 4,
  tagLength: 64,
  memory: 65536,
  passes: 3,
};

const derivedKey = argon2Sync('argon2id', parameters);
console.log(derivedKey.toString('hex'));  // 'af91dad...9520f15'const { argon2Sync, randomBytes } = require('node:crypto');

const parameters = {
  message: 'password',
  nonce: randomBytes(16),
  parallelism: 4,
  tagLength: 64,
  memory: 65536,
  passes: 3,
};

const derivedKey = argon2Sync('argon2id', parameters);
console.log(derivedKey.toString('hex'));  // 'af91dad...9520f15'