什么是 RSA 密钥生成器?
RSA 密钥生成器创建标准 PEM 格式的RSA 公钥和私钥对,可用于加密、数字签名、SSL/TLS 证书和安全通信。
RSA(Rivest-Shamir-Adleman)是现代密码学中使用最广泛的非对称加密算法之一。它使用数学关联的密钥对:公钥用于加密数据或验证签名,私钥用于解密数据或创建签名。
密钥类型说明
RSA-OAEP
最优非对称加密填充
用于加密和解密数据。推荐用于安全数据交换、文件加密和保护敏感信息。
加密RSASSA-PKCS1-v1_5
带附录的 RSA 签名方案
用于创建和验证数字签名。常见于 JWT 令牌、代码签名、文档认证和 API 安全。
签名密钥大小
2048 位
适合大多数应用的标准安全级别。
- 快速生成
- 行业标准
- 性能均衡
- 推荐用于常规用途
3072 位
用于敏感数据保护的增强安全性。
- 更高的安全边际
- 面向未来的保护
- 中等生成时间
- 适合敏感数据
4096 位
用于高安全环境的最大安全性。
- 最大保护
- 长期安全
- 生成速度较慢
- 企业级
如何使用 RSA 密钥生成器
使用我们的浏览器工具在几秒内生成安全的 RSA 密钥对。按照以下简单步骤创建您的密码学密钥:
选择密钥大小
根据您的安全需求在2048、3072或4096 位之间选择。对于大多数应用,2048 位提供充分的安全性和最优性能。
选择密钥类型
如果需要加密/解密数据,选择RSA-OAEP;如果需要创建/验证数字签名,选择RSASSA-PKCS1-v1_5。
选择哈希算法
从SHA-256、SHA-384或SHA-512中选择。SHA-256 推荐用于大多数用例,而 SHA-512 提供最大的哈希强度。
生成密钥对
点击"生成密钥对"按钮。您的公钥和私钥将立即创建并以标准 PEM 格式显示。
复制或下载
使用复制按钮快速将密钥复制到剪贴板,或下载为 .pem 文件以安全存储并集成到您的项目中。
输出格式
公钥
以SPKI(主体公钥信息)格式导出,包装在 PEM 编码中。可安全公开共享用于加密或签名验证。
可共享私钥
以PKCS8格式导出,包装在 PEM 编码中。必须保密和安全。用于解密和签名创建。
保密指纹
公钥的SHA-256 哈希,以冒号分隔的十六进制格式显示。提供密钥的简便识别和验证。
标识符您的数据保持私密
安全和隐私是我们的首要任务。所有密钥生成完全在您的浏览器中使用 Web Crypto API 进行:
- 无服务器处理 - 密钥使用您设备的密码学硬件在本地生成,永远不会通过网络传输
- 无存储 - 密钥仅存在于您的浏览器会话内存中,直到您明确保存。我们不存储任何内容
- 无跟踪 - 我们不记录、监控或收集任何关于您的密钥生成活动的信息
- 开源密码学 - 使用浏览器原生 Web Crypto API,由浏览器供应商审计和维护
功能
多种密钥大小
生成三种行业标准大小的 RSA 密钥以匹配您的安全需求:
- 2048 位用于日常使用和标准安全
- 3072 位用于增强保护和合规性
- 4096 位用于最大安全性和长期保护
灵活的密钥类型
支持两种主要的 RSA 密码学用例:
- RSA-OAEP用于安全数据加密和解密
- RSASSA-PKCS1-v1_5用于数字签名和验证
- 为您的特定应用选择正确的算法
哈希算法选择
从多个密码学哈希函数中选择:
- SHA-256 - 快速且安全,适合大多数应用
- SHA-384 - 增强安全性,哈希输出更大
- SHA-512 - 最大哈希强度,用于关键系统
标准 PEM 输出
密钥以广泛兼容的 PEM 格式导出:
- 公钥使用SPKI编码标准
- 私钥使用PKCS8编码标准
- 与 OpenSSL、SSH 和大多数密码库兼容
- 可立即用于生产系统
密钥指纹
每个生成的密钥对都包含验证功能:
- 公钥的SHA-256 指纹
- 冒号分隔的十六进制格式,便于阅读
- 密钥的简便识别和验证
- 检测篡改或密钥替换
复制和下载
保存生成的密钥的多种选项:
- 一键复制到剪贴板以快速使用
- 下载为 .pem 文件以安全存储
- 公钥和私钥的单独文件
- 立即集成到您的项目中
命令行工具
- 安装 OpenSSL 或类似工具
- 学习复杂的命令语法
- 手动格式转换
- 语法错误的风险
- 耗时的设置
浏览器生成器
- 无需安装
- 简单的可视化界面
- 自动格式处理
- 无错误生成
- 即时结果
常见问题
我应该使用什么密钥大小?
2048 位对大多数应用都足够,是 NIST 和其他安全组织推荐的当前行业标准。它为加密和签名操作提供强大的安全性和最优性能。
如果您需要长期安全(10 年以上)、在高安全环境中工作或有强制要求更大密钥大小的合规要求,请使用4096 位。请注意,更大的密钥有以下权衡:
- 更长的生成时间(可能需要几秒钟)
- 更慢的加密/解密操作
- 更大的密钥文件大小
- 增加的计算开销
3072 位提供了增强安全性和合理性能之间的平衡。
RSA-OAEP 和 RSASSA-PKCS1-v1_5 有什么区别?
这是两个为不同目的设计的 RSA 方案:
RSA-OAEP(加密)
用于:加密和解密数据
- 使用公钥加密
- 使用私钥解密
- 安全数据交换
- 文件加密
RSASSA-PKCS1-v1_5(签名)
用于:创建和验证数字签名
- 使用私钥签名
- 使用公钥验证
- JWT 令牌
- 代码签名
根据您的用例选择:如果需要保护数据机密性,使用 RSA-OAEP。如果需要证明真实性和完整性,使用 RSASSA-PKCS1-v1_5。
生成的密钥是否安全?
是的,绝对安全。密钥使用您浏览器内置的 Web Crypto API 生成,该 API 实现行业标准密码学算法并使用密码学安全的随机数生成器 (CSRNG)。
- 密码学安全的随机性 - 在可用时使用硬件熵源
- 无网络传输 - 密钥完全在您的设备上生成
- 无服务器存储 - 密钥仅存在于您的浏览器会话中
- 浏览器原生实现 - 由浏览器供应商和安全研究人员审计
- 行业标准算法 - 遵循 NIST 和 IETF 规范
Web Crypto API 是主要网站用于安全通信的相同技术。您的密钥与由 OpenSSL 等专业命令行工具生成的密钥一样安全。
我可以将这些密钥与 OpenSSL 一起使用吗?
是的,完全兼容。PEM 格式与 SPKI(公钥)和 PKCS8(私钥)编码是 OpenSSL 和几乎所有密码学工具和库使用的标准格式。
您可以直接将生成的密钥与以下工具一起使用:
- OpenSSL - 命令行密码学工具包
- SSH - 安全 shell 认证(需要转换)
- Node.js crypto 模块 - JavaScript 密码学
- Python 密码学库 - PyCrypto、cryptography.io
- Java 安全 API - JCE、Bouncy Castle
- PHP OpenSSL 函数 - openssl_* 函数
- .NET 密码学 - RSACryptoServiceProvider
- SSL/TLS 证书 - Web 服务器配置
# Verify public key
openssl rsa -pubin -in public_key.pem -text -noout
# Verify private key
openssl rsa -in private_key.pem -text -noout
# Extract public key from private key
openssl rsa -in private_key.pem -pubout -out public_key.pem
为什么 4096 位密钥生成需要更长时间?
更大的密钥大小需要找到更大的素数,这在计算上很密集。RSA 密钥生成涉及:
生成素数
找到两个大的随机素数
素性测试
验证数字确实是素数
计算密钥
计算公钥和私钥指数
对于 4096 位密钥,素数的大小是 2048 位密钥的两倍,使素性测试明显更复杂。生成时间取决于您设备的处理能力:
| 密钥大小 | 典型时间 | 复杂度 |
|---|---|---|
| 2048 位 | < 1 秒 | 快速 |
| 3072 位 | 1-3 秒 | 中等 |
| 4096 位 | 3-10 秒 | 密集 |
注意:具有硬件密码学加速的现代设备可能生成密钥更快。移动设备通常比台式计算机花费更长时间。
什么是密钥指纹?
指纹是公钥的 SHA-256 哈希,以冒号分隔的十六进制格式显示(类似于 SSH 密钥指纹)。它用作您的密钥的短的、唯一的标识符。
指纹为什么有用:
- 密钥验证 - 确认您使用的是正确的公钥
- 篡改检测 - 验证密钥在传输过程中未被修改
- 简便比较 - 比较密钥而无需检查完整的 PEM 内容
- 密钥管理 - 跟踪和识别系统中的多个密钥
- 安全审计 - 记录和监控正在使用的密钥
SHA256:a3:4f:2c:8e:1d:9b:7f:3a:6c:5e:2d:8f:4b:1a:9c:7e:3d:6f:2a:8b:5c:1e:9d:4f:7a:3c:6e:2b:8d:5f:1a:9c
指纹是从公钥密码学派生的,因此对密钥的任何更改(甚至单个比特)都会产生完全不同的指纹。
还没有评论,快来发表第一条!