當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。