🔑

RSA 密钥对生成器

RSA 密钥对生成器工具

位数:
🔑公钥
🔒私钥

什么是 RSA 密钥对生成器

RSA密钥对生成器基于大数分解的数学难题,通过选择两个大质数p和q,计算模数n=p×q和欧拉函数φ(n)=(p-1)(q-1),然后选择公钥指数e和私钥指数d,使得e×d≡1(mod φ(n))。RSA密钥对包括公钥(n,e)和私钥(n,d),公钥用于加密和验证数字签名,私钥用于解密和生成数字签名。密钥长度通常为1024、2048或4096位,更长的密钥提供更高的安全性。

功能特点

🚀

生成可配置位长度的 RSA 密钥对(256-16384 位)

生成可自定义位长度的RSA密钥对,从256到16384位

公钥和私钥的标准 PEM 格式输出

以标准PEM格式输出密钥,便于与加密库集成
🎯

使用 node-forge 库进行安全的密钥生成

使用行业标准的node-forge库进行加密安全的密钥生成
🔒

位长度要求的实时验证

实时验证位长度要求,提供详细的错误信息
🎯

应用场景

🌐

SSL/TLS证书生成

为SSL/TLS证书生成RSA密钥对,保护网站通信安全。标准证书使用2048位密钥,扩展验证(EV)证书使用3072-4096位密钥。对于HTTPS加密、保护用户数据和建立浏览器与用户的信任至关重要。
🔐

SSH密钥认证

创建RSA密钥对用于无密码SSH服务器认证。生成公钥添加到服务器的authorized_keys,实现无需密码的安全远程访问。广泛用于开发者、系统管理员和DevOps团队的安全服务器管理。
✍️

代码签名和软件分发

生成RSA密钥对用于代码签名,验证软件真实性和完整性。签名可执行文件、安装程序和软件包,防止篡改和恶意软件分发。Windows Authenticode、macOS Gatekeeper和Linux软件包签名都需要。
📝

数字签名和文档验证

创建RSA密钥对用于法律文档、合同和交易的数字签名。使用私钥签名文档,使用公钥验证签名,确保不可否认性和文档完整性。用于电子签名平台、区块链交易和法律合规。
🔑

API认证和JWT令牌

生成RSA密钥对用于API认证和JWT令牌签名。使用私钥签名令牌,使用公钥验证令牌,实现安全的无状态认证。对于微服务、OAuth 2.0和现代API安全架构至关重要。
📧

电子邮件加密(PGP/GPG)

创建RSA密钥对用于PGP/GPG电子邮件加密和安全消息传递。使用收件人的公钥加密邮件,使用私钥解密,确保机密通信。记者、企业和注重隐私的个人用于安全电子邮件通信。
🛡️

VPN和网络安全

生成RSA密钥对用于VPN连接、安全隧道和网络加密。建立安全的虚拟专用网络,保护传输中的数据,实现安全远程访问。用于企业网络、云服务和安全通信协议。
⛓️

区块链和加密货币钱包

创建RSA密钥对用于加密货币钱包和区块链应用。保护钱包私钥、签署区块链交易并验证交易真实性。用于加密货币交易所、钱包应用和基于区块链的身份系统。

📋使用指南

1️⃣
配置参数
选择密钥长度(推荐2048位)
2️⃣
生成密钥
点击生成按钮创建密钥对
3️⃣
复制使用
复制公钥和私钥到您的应用

📚技术介绍

🔬RSA密钥对生成算法和数学

RSA密钥生成基于素数分解难度创建数学相关的公私钥对。过程包括:使用概率素性测试(Miller-Rabin算法)选择两个大随机素数(p,q),计算模数n = p × q和欧拉函数φ(n) = (p-1)(q-1),选择公开指数e(通常为65537以提高效率和安全性),并使用扩展欧几里得算法计算满足e × d ≡ 1 (mod φ(n))的私钥指数d。该工具支持512到4096位的密钥大小(推荐生产环境使用2048+),实现安全随机素数生成,通过加密-解密往返测试验证密钥对正确性,并以多种格式(PEM、DER、PKCS#1、PKCS#8)导出密钥以兼容各种密码学库和系统。

⚙️密钥格式标准和编码

该工具生成符合PKCS标准的行业标准格式的密钥。PEM(隐私增强邮件)格式使用Base64编码和页眉/页脚标记进行人类可读的文本表示。DER(区分编码规则)提供用于紧凑存储和传输的二进制格式。PKCS#1(RSA密码学标准)定义RSA密钥结构,而PKCS#8(私钥信息语法标准)提供与格式无关的私钥表示。生成器支持密钥组件的ASN.1编码,包括用于算法识别的适当OID(对象标识符)标签,并处理从私钥提取公钥。高级功能包括密钥组件检查(模数、指数、素数)、PEM/DER之间的格式转换以及OpenSSL、Java密码学架构和.NET密码学库的兼容性验证。

💡安全最佳实践和密钥管理

安全的RSA密钥管理需要适当的生成、存储和使用实践。该工具提供安全建议:使用密码学安全的随机源生成密钥,使用最小2048位密钥以确保当前安全(长期保护使用3072-4096位),使用强密码短语和安全存储(HSM、密钥保管库)保护私钥,并实施适当的密钥轮换策略。安全警告包括密钥大小影响(1024位密钥不再安全)、随机数生成的熵要求以及防止侧信道攻击。高级功能包括密码短语保护的私钥导出、用于验证的密钥指纹生成(MD5、SHA-256)、安全密钥销毁指导以及生产环境中证书签名请求(CSR)、SSL/TLS证书、SSH认证和代码签名的集成建议。

Frequently Asked Questions

生成的密钥对可以用于什么场景?

RSA密钥对广泛应用于:1)HTTPS/SSL证书:保护网站通信安全;2)SSH密钥认证:无密码登录服务器;3)代码签名:验证软件来源和完整性;4)电子邮件加密:PGP/GPG加密通信;5)API认证:JWT令牌签名;6)数字签名:文档和交易的法律效力证明;7)VPN连接:建立安全的虚拟专用网络。
💬

生成密钥需要多长时间?

生成时间取决于密钥长度和设备性能。通常:2048位约1-3秒,3072位约3-8秒,4096位约5-15秒,8192位可能需要30秒以上。首次生成可能较慢,因为需要收集随机熵。如果长时间无响应,建议刷新页面重试。
🔍

PEM格式和DER格式有什么区别?

PEM(Privacy Enhanced Mail)是文本格式,使用Base64编码,以-----BEGIN RSA PRIVATE KEY-----开头,便于复制粘贴和在文本编辑器中查看。DER(Distinguished Encoding Rules)是二进制格式,文件更小但不可直接阅读,常用于Java和某些证书系统。大多数情况下推荐使用PEM格式。
💡

如何验证生成的密钥对是否有效?

工具会自动验证生成的密钥对。您也可以手动验证:1)使用OpenSSL命令验证格式:`openssl rsa -in private.pem -text -noout`;2)测试加密解密:用公钥加密一段文本,再用私钥解密,看是否能恢复原文;3)检查密钥长度:确认密钥模数的位数符合预期。
📚

公钥可以从私钥导出吗?

可以。RSA私钥包含了生成公钥所需的所有信息(模数n和公钥指数e)。您可以使用OpenSSL命令从私钥提取公钥:`openssl rsa -in private.pem -pubout -out public.pem`。但反过来不行,公钥无法推导出私钥,这正是RSA安全性的基础。
🎯

如何安全地存储私钥?

最佳实践:1)使用密码短语加密私钥(如`openssl rsa -aes256`);2)存储在安全位置:密钥管理器(如1Password、LastPass)、硬件安全模块(HSM)、加密磁盘分区;3)设置严格的文件权限(Linux: chmod 600);4)不要提交到Git仓库;5)定期备份到离线存储;6)使用多重身份验证保护访问。

💡How To & Tips

1️⃣

选择合适的密钥长度

2048位适合日常使用,3072-4096位用于高安全场景。避免使用1024位或更短的密钥。
2️⃣

生成并验证密钥对

点击生成按钮创建密钥对,查看公钥和私钥是否正确生成。工具会自动验证密钥对的有效性。
3️⃣

安全保存私钥

复制私钥后立即保存到安全位置(如密钥管理器、加密文件),不要以明文形式存储或通过不安全渠道传输。
4️⃣

分发公钥

公钥可以自由分享,复制后可以发送给需要向您发送加密数据的人或用于SSL证书、SSH认证等。
⚠️

本地生成,隐私安全

所有密钥生成完全在您的浏览器本地完成,不会上传到任何服务器。生成后请及时保存并清空页面。
💡

定期更换密钥

建议每1-2年更换一次密钥对,或在怀疑私钥泄露时立即更换。旧密钥应安全销毁。

🔗Related Documents

📖NIST - 加密标准-NIST官方加密标准和指南
🎓OWASP - 加密存储-安全加密存储最佳实践
MDN - Web Crypto API-浏览器加密API用于安全操作
📚OWASP - 加密备忘单-正确实现加密的指南
💡RFC 5246 - TLS 协议-传输层安全协议规范

User Comments

0 / 2000
Loading...