crypto.generateKeyPairSync(type, options)
曆史
| 版本 | 變化 | 
|---|---|
| v16.10.0 | 添加為RSA-PSS  key 對定義  | 
| 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 | 如果未指定編碼,  | 
| v10.12.0 | 添加於:v10.12.0  | 
參數
type: <string> 必須是'rsa','rsa-pss','dsa','ec','ed25519','ed448','x25519','x448', 或'dh'.options:<Object>modulusLength: <number> key 大小(以位為單位)(RSA、DSA)。publicExponent: <number> 公共 index (RSA)。 默認:0x10001。hashAlgorithm: <string> 消息摘要的名稱 (RSA-PSS)。mgf1HashAlgorithm: <string> MGF1 使用的消息摘要的名稱 (RSA-PSS)。saltLength: <number> 以字節為單位的最小鹽長度 (RSA-PSS)。divisorLength: <number>q的大小(以位 (DSA) 為單位)。namedCurve: <string> 要使用的曲線的名稱 (EC)。prime: <Buffer> 主要參數 (DH)。primeLength: <number> 以比特為單位的素數長度 (DH)。generator: <number> 自定義生成器 (DH)。 默認:2。groupName: <string> Diffie-Hellman 組名 (DH)。請參閱。crypto.getDiffieHellman()publicKeyEncoding: <Object> 參見。keyObject.export()privateKeyEncoding: <Object> 參見。keyObject.export()
- 返回:<Object>
publicKey: <string> | <Buffer> | <KeyObject>privateKey: <string> | <Buffer> | <KeyObject>
 
生成給定 type 的新非對稱 key 對。目前支持 RSA、RSA-PSS、DSA、EC、Ed25519、Ed448、X25519、X448 和 DH。
如果指定了 publicKeyEncoding 或 privateKeyEncoding,則此函數的行為就像在其結果上調用了  。否則, key 的相應部分將作為 keyObject.export()   返回。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的數據的緩衝區。
相關用法
- Node.js crypto.generateKeyPairSync()用法及代碼示例
 - Node.js crypto.generateKeyPair()用法及代碼示例
 - Node.js crypto.generateKeyPair(type, options, callback)用法及代碼示例
 - Node.js crypto.generateKeySync(type, options)用法及代碼示例
 - Node.js crypto.generateKey(type, options, callback)用法及代碼示例
 - Node.js crypto.getCurves()用法及代碼示例
 - Node.js crypto.getHashes()用法及代碼示例
 - Node.js crypto.getDiffieHellman(groupName)用法及代碼示例
 - Node.js crypto.getCiphers()用法及代碼示例
 - Node.js crypto.getDiffieHellman()用法及代碼示例
 - Node.js crypto.randomFill()用法及代碼示例
 - Node.js crypto.createHmac()用法及代碼示例
 - Node.js crypto.randomFillSync(buffer[, offset][, size])用法及代碼示例
 - Node.js crypto.constants用法及代碼示例
 - Node.js crypto.randomInt([min, ]max[, callback])用法及代碼示例
 - Node.js crypto.publicEncrypt()用法及代碼示例
 - Node.js crypto.publicDecrypt()用法及代碼示例
 - Node.js crypto.pbkdf2Sync(password, salt, iterations, keylen, digest)用法及代碼示例
 - Node.js crypto.createHash()用法及代碼示例
 - Node.js crypto.hkdfSync()用法及代碼示例
 - Node.js crypto.randomFillSync()用法及代碼示例
 - Node.js crypto.checkPrime()用法及代碼示例
 - Node.js crypto.sign()用法及代碼示例
 - Node.js crypto.webcrypto用法及代碼示例
 - Node.js crypto.createCipheriv()用法及代碼示例
 
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 crypto.generateKeyPairSync(type, options)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
