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


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


crypto.generateKeyPair(type, options, callback)

历史
版本变化
v18.0.0

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

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',并对long-term 存储进行加密:

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

generateKeyPair('rsa', {
  modulusLength: 4096,
  publicKeyEncoding: {
    type: 'spki',
    format: 'pem'
  },
  privateKeyEncoding: {
    type: 'pkcs8',
    format: 'pem',
    cipher: 'aes-256-cbc',
    passphrase: 'top secret'
  }
}, (err, publicKey, privateKey) => {
  // Handle errors and use the generated key pair.
});const {
  generateKeyPair,
} = require('node:crypto');

generateKeyPair('rsa', {
  modulusLength: 4096,
  publicKeyEncoding: {
    type: 'spki',
    format: 'pem'
  },
  privateKeyEncoding: {
    type: 'pkcs8',
    format: 'pem',
    cipher: 'aes-256-cbc',
    passphrase: 'top secret'
  }
}, (err, publicKey, privateKey) => {
  // Handle errors and use the generated key pair.
});

完成后,将调用 callback,并将 err 设置为 undefinedpublicKey /privateKey 表示生成的 key 对。

如果此方法作为其 util.promisify() ed 版本调用,它会为具有 publicKeyprivateKey 属性的 Object 返回 Promise

相关用法


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