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


Node.js crypto.generateKeyPairSync(type, options)用法及代码示例


crypto.generateKeyPairSync(type, options)

历史
版本变化
v16.10.0

添加为RSA-PSS key 对定义RSASSA-PSS-params 序列参数的函数。

v13.9.0、v12.17.0

添加对Diffie-Hellman 的支持。

v12.0.0

添加对RSA-PSS key 对的支持。

v12.0.0

添加生成 X25519 和 X448 key 对的函数。

v12.0.0

添加生成 Ed25519 和 Ed448 key 对的函数。

v11.6.0

如果未指定编码,generateKeyPairgenerateKeyPairSync 函数现在会生成 key 对象。

v10.12.0

添加于:v10.12.0


参数

生成给定 type 的新非对称 key 对。目前支持 RSA、RSA-PSS、DSA、EC、Ed25519、Ed448、X25519、X448 和 DH。

如果指定了 publicKeyEncodingprivateKeyEncoding,则此函数的行为就像在其结果上调用了 keyObject.export() 。否则, key 的相应部分将作为 KeyObject 返回。

编码公钥时,推荐使用'spki'。在对私钥进行编码时,建议使用带有强密码的'pkcs8',并对密码进行保密。

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

const {
  publicKey,
  privateKey,
} = generateKeyPairSync('rsa', {
  modulusLength: 4096,
  publicKeyEncoding: {
    type: 'spki',
    format: 'pem'
  },
  privateKeyEncoding: {
    type: 'pkcs8',
    format: 'pem',
    cipher: 'aes-256-cbc',
    passphrase: 'top secret'
  }
});const {
  generateKeyPairSync,
} = require('node:crypto');

const {
  publicKey,
  privateKey,
} = generateKeyPairSync('rsa', {
  modulusLength: 4096,
  publicKeyEncoding: {
    type: 'spki',
    format: 'pem'
  },
  privateKeyEncoding: {
    type: 'pkcs8',
    format: 'pem',
    cipher: 'aes-256-cbc',
    passphrase: 'top secret'
  }
});

返回值{ publicKey, privateKey } 表示生成的 key 对。选择PEM编码时,相应的 key 将是一个字符串,否则它将是包含编码为der的数据的缓冲区。

相关用法


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