跳到主要内容

rsaGenerateKey()

function rsaGenerateKey(modulusLength?): Promise<{
privateKey: string;
publicKey: string;
}>;

Defined in: packages/utils/src/crypto/rsaGenerateKey.ts:55

生成 RSA 密钥对

Parameters​

ParameterTypeDefault valueDescription
modulusLengthnumber2048模数长度,默认 2048,可选值:1024、2048、4096

Returns​

Promise<{ privateKey: string; publicKey: string; }>

包含公钥和私钥 PEM 格式字符串的对象

Throws​

当环境缺少 Web Crypto API 或密钥生成失败时抛出错误

Example​

const keyPair = await rsaGenerateKey(2048);
console.log(keyPair.publicKey); // PEM 格式的公钥
console.log(keyPair.privateKey); // PEM 格式的私钥
**注意:** 使用 Web Crypto API 生成 RSA-OAEP 密钥对
**注意:** 使用 SHA-256 哈希算法
**注意:** 公钥指数固定为 65537 (0x010001)
**注意:** 生成的密钥可用于加密和解密操作
**注意:** PEM 正文按 RFC 7468 折成 64 列
**破坏性变更(UTL-026):** 私钥标签由 `RSA PRIVATE KEY`(PKCS#1)改为
`PRIVATE KEY`(PKCS#8),与 `exportKey('pkcs8')` 的正文一致;DER 内容不变,
只有文本标签与折行变了。已落盘 / 已分发的旧 PEM 无需重新生成,本包的
`rsaDecrypt` / `rsaEncrypt` 剥标签导入,新旧文本都能读。