CoderTools

RSA加密/解密工具

公钥加密、私钥解密,支持密钥生成和数字签名

🔒 100% 本地处理您输入的数据完全在浏览器中处理,不会上传到任何服务器。

关于 RSA 加密

RSA (Rivest–Shamir–Adleman) 是最早也是应用最广泛的公钥加密系统之一。与使用单一密钥的对称算法(如 AES)不同,RSA 使用一对密钥:用于加密的公钥和用于解密的私钥。这种非对称性允许您公开分享公钥,同时保持私钥的机密性。

RSA 的安全性基于大整数分解的数学难题(分解两个大质数的乘积)。它是 SSL/TLS 证书、电子邮件加密 (PGP) 和安全远程连接 (SSH) 的核心标准。

主要功能

  • <strong>密钥生成</strong>:生成 PEM 格式的安全 1024、2048 或 4096 位 RSA 密钥对。
  • <strong>加密</strong>:使用公钥加密消息,只有持有私钥的人才能解密读取。
  • <strong>解密</strong>:使用您的私钥解密收到的加密消息。
  • <strong>数字签名</strong>:使用私钥签署消息以证明真实性;任何人都可以用公钥验证签名。
  • <strong>填充模式</strong>:支持现代的 <strong>OAEP</strong>(最安全)和传统的 <strong>PKCS#1 v1.5</strong>(兼容性)。
  • 支持多种哈希算法:SHA-1、SHA-256、SHA-384、SHA-512
  • 填充模式选择:支持OAEP(推荐)和PKCS#1 v1.5(传统兼容)
  • 多格式支持:输入/输出支持文本、Base64、Hex等多种格式

密钥长度选择

选择合适的密钥长度对于安全性和性能至关重要:

  • 1024-bit: 1024位:不推荐用于新系统,可能在数年内被破解
  • 2048-bit: 2048位:当前推荐的最小长度,适合大多数应用
  • 4096-bit: 4096位:提供最高安全性,但加密/解密速度较慢

填充模式

本工具支持两种RSA填充模式,可根据安全需求和兼容性要求选择:

  • OAEP: 最优非对称加密填充,提供语义安全性,可防止选择密文攻击。推荐用于新系统。
  • PKCS#1 v1.5: 传统填充模式,存在已知的Bleichenbacher攻击漏洞。仅建议在需要与旧系统兼容时使用。

格式选项

本工具支持多种数据格式,方便与不同系统进行交互:

  • 文本: 直接输入/输出UTF-8文本,适合处理普通字符串
  • Base64: Base64编码格式,常用于网络传输和存储二进制数据
  • Hex: 十六进制格式,便于查看和调试二进制数据

使用场景

  • 安全通信:加密敏感数据后传输
  • 数字签名:验证消息的真实性和完整性
  • 密钥交换:安全地交换对称密钥
  • 身份认证:验证发送者身份
  • 软件许可:生成和验证许可证

安全最佳实践

  • <strong>密钥长度</strong>:至少使用 2048 位密钥。推荐使用 4096 位以获得长期安全性。1024 位已不再安全。
  • <strong>填充模式</strong>:尽量使用 OAEP 填充而非 PKCS#1 v1.5。OAEP 能有效防止“填充预言机”攻击。
  • <strong>密钥保密</strong>:永远不要分享您的私钥。拥有私钥的人可以读取您的加密消息或冒充您。
  • <strong>混合加密</strong>:RSA 计算缓慢且有长度限制。对于大文件,请使用 RSA 加密随机 AES 密钥,然后用 AES 加密文件。
  • <strong>仅限客户端</strong>:此工具完全在您的浏览器中使用 Web Crypto API 运行。您的私钥永远不会离开您的设备。

技术限制

  • <strong>数据大小</strong>:RSA 不能直接加密超过其密钥长度(减去填充开销)的数据。例如,使用 OAEP 的 2048 位密钥最多只能加密约 214 字节。
  • <strong>性能</strong>:RSA 比对称加密(AES)慢得多。不要用它来加密大量数据。
  • <strong>格式</strong>:此工具使用标准的 PEM 格式(带头部的 Base64)。请确保您的其他工具支持此格式。

技术参考

常见问题 (FAQ)

在此网站生成/使用 RSA 密钥安全吗?

是的。该工具通过 JavaScript 完全在您的浏览器中运行。没有任何密钥或数据会发送到我们的服务器。您的私钥严格保留在您的设备上。

公钥和私钥有什么区别?

**公钥**用于加密数据和验证签名,可以公开分享。**私钥**用于解密数据和创建签名,必须严格保密。只有私钥才能解密公钥加密的内容。

为什么我无法加密很长的文本?

RSA 的最大消息长度受到密钥长度和填充模式的限制。对于使用 OAEP 填充的 2048 位密钥,限制约为 214 字节。对于更长的文本,请使用“混合加密”(即先用 AES 加密数据,再用 RSA 加密 AES 密钥)。

我应该使用 OAEP 还是 PKCS1 v1.5 填充?

只要可能,您都应该使用 **OAEP**。它提供了更好的安全性。PKCS#1 v1.5 是旧标准,容易受到填充攻击,通常仅用于兼容旧系统。

我应该选择多大的密钥(2048 vs 4096)?

**2048 位**是目前的行业标准,对大多数用途来说是安全的。**4096 位**更安全,但生成和使用速度要慢得多。**1024 位**已被认为不安全,不应使用。

什么是 PEM 格式?

PEM (Privacy Enhanced Mail) 是存储加密密钥的标准格式。它本质上是 Base64 编码的 ASN.1 数据,并包裹在 `-----BEGIN PUBLIC KEY-----` 这样的头部中。

快捷菜单

暂无访问记录