crypto.generateKeyPair(type, options, callback)
版本 | 变化 |
---|---|
v18.0.0 | 将无效回调传递给 |
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()
callback
:<Function>err
: <Error>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'
,并对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
设置为 undefined
和 publicKey
/privateKey
表示生成的 key 对。
如果此方法作为其
ed 版本调用,它会为具有 util.promisify()
publicKey
和 privateKey
属性的 Object
返回 Promise
。
相关用法
- Node.js crypto.generateKeyPair()用法及代码示例
- Node.js crypto.generateKeyPairSync(type, options)用法及代码示例
- Node.js crypto.generateKeyPairSync()用法及代码示例
- 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.generateKeyPair(type, options, callback)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。