# RSA 密钥生成器

生成新的 RSA 密钥对，模数为 2048 或 3072 位，公钥指数为 65537。你会获得未加密的 PKCS #8 PEM 格式私钥、SPKI PEM 格式公钥、与其匹配并带有 SHA-256 指纹的 OpenSSH ssh-rsa 行、它支持签名的 RS 和 PS 算法，以及可用作密钥 ID 的 RFC 7638 JWK 指纹。每个密钥对都使用 Node 的 crypto 模块为本次请求生成，绝不保存。

## 常见问题

### 应该选择 2048 位还是 3072 位？

2048 位 RSA 仍是常见的最低标准，且各处都接受，包括拒绝较小密钥的 JWT 库。3072 位对应 NIST SP 800-57 建议的 128 位安全级别，可用于 2030 之后的场景，但代价是签名更大、签署更慢。不提供 4096 位等更大尺寸，因为在共享服务器上，其生成时间难以预测。

### 结果采用哪些格式？

私钥采用 PEM 编码的 PKCS #8 格式（BEGIN PRIVATE KEY），公钥采用 PEM 编码的 SubjectPublicKeyInfo 格式（BEGIN PUBLIC KEY）。OpenSSL、Java、.NET、Go、Node、jose 和大多数其他库都可以读取这两种格式。结果还会附上 OpenSSH 公钥行，供 authorized_keys 文件使用。

### 私钥经过加密吗？

不，私钥会直接返回，不带口令短语，因此可以直接粘贴到其他工具中。若要保护静态存储的私钥，请运行 openssl pkey -in key.pem -aes256 -out key-encrypted.pem，并只保存加密后的文件。请勿将未加密的副本纳入版本控制。

### 如何获取 PKCS #1 格式（BEGIN RSA PRIVATE KEY）？

某些较旧的软件需要传统的 PKCS #1 格式。使用 OpenSSL 3 运行 openssl pkey -in key.pem -traditional -out key-rsa.pem，即可转换 PKCS #8 文件。密钥材料相同，只有封装格式不同。

### 我可以将此密钥用于 SSH 吗？

可以。将 ssh-rsa 行放入服务器上的 ~/.ssh/authorized_keys，并将私钥 PEM 保存为身份文件，权限设为 600，因为 OpenSSH 可以读取 PEM 编码的 RSA 密钥。如今许多服务器更倾向于使用 Ed25519 密钥，可通过 Ed25519 Key Generator 创建。

### 什么是 JWK 指纹？

它是对公钥必需的 JWK 成员进行 RFC 7638 SHA-256 哈希后，以 base64url 编码得到的值。它能够独立于密钥格式标识密钥，因此很适合作为 JWT 和 JWKS 文档中的 kid 值。JWK Converter 会显示此密钥的相同值。

### 此密钥可以签署哪些 JWT 算法？

RSA 密钥可签署 RS256、RS384 和 RS512（PKCS #1 v1.5），以及 PS256、PS384 和 PS512（RSA-PSS）。请在 JWT Generator 中使用私钥 PEM，并向验证方提供公钥 PEM 或其 JWK。算法属于签名的属性，因此同一密钥可用于多种算法。

### 生成的密钥会存储在某处吗？

不会。密钥对会根据你的请求在内存中创建，在结果中返回一次，且绝不会记录或保存。如果密钥丢失，请重新生成一对，因为没有人能帮你找回。

### 注释选项有什么作用？

注释会附加到 OpenSSH 公钥行末尾，通常是 user@host 或 deploy-2026 这样的标签，方便你在 authorized_keys 中识别密钥。它不会更改密钥或其指纹。注释最多为 200 个字符，空白字符会合并为单个空格。

### 密钥的随机性如何？

这些素数由操作系统的密码学安全随机数生成器通过 OpenSSL 生成，来源与服务器生成自身密钥时相同。每次请求都会生成新的独立密钥对。公钥指数始终为 65537，这是标准值。

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20OneClick%20Pro%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=oneclickpro)
