const crypto = require('crypto');
// 生成密钥对
const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', {
modulusLength: 2048, // 模数长度,一般选择 2048 或以上
publicKeyEncoding: {
type: 'spki', // 公钥编码格式
format: 'pem' // 公钥输出格式
},
privateKeyEncoding: {
type: 'pkcs8', // 私钥编码格式
format: 'pem', // 私钥输出格式
cipher: 'aes-256-cbc', // 加密算法,可选
passphrase: 'myPassphrase' // 加密密码,可选
}
});
console.log('生成的公钥:');
console.log(publicKey);
console.log('生成的私钥:');
console.log(privateKey);
以上代码使用了 Node.js 内置的 crypto 模块,通过 generateKeyPairSync
方法生成了一对 RSA 密钥对,其中包括了公钥和私钥。可以通过 publicKey
和 privateKey
变量获取生成的公钥和私钥。
在生成私钥时,可以指定加密算法和加密密码,以增加私钥的安全性。例如,上面的示例代码中指定了加密算法为 AES-256-CBC,并设置了加密密码为 "myPassphrase"。生成的私钥会使用指定的加密算法和密码进行加密,需要在使用私钥时输入正确的密码进行解密。这样可以增加私钥的保密性,防止未授权的访问。