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


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