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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
