RSA在线加密/解密
在线RSA加密解密,支持密钥生成、公钥加密、私钥解密和数字签名验证,支持PEM格式密钥
OAEP是更安全的现代填充模式,提供语义安全性和抗选择密文攻击能力。每次加密相同内容会产生不同密文(概率加密)。
关于 RSA 加密
RSA (Rivest–Shamir–Adleman) 是最早也是应用最广泛的公钥加密系统之一。与使用单一密钥的对称算法(如 AES)不同,RSA 使用一对密钥:用于加密的公钥和用于解密的私钥。这种非对称性允许您公开分享公钥,同时保持私钥的机密性。
RSA 的安全性基于大整数分解的数学难题(分解两个大质数的乘积)。它是 SSL/TLS 证书、电子邮件加密 (PGP) 和安全远程连接 (SSH) 的核心标准。
主要功能
- 密钥生成:生成 PEM 格式的安全 1024、2048 或 4096 位 RSA 密钥对。
- 加密:使用公钥加密消息,只有持有私钥的人才能解密读取。
- 解密:使用您的私钥解密收到的加密消息。
- 数字签名:使用私钥签署消息以证明真实性;任何人都可以用公钥验证签名。
- 填充模式:支持现代的 OAEP(最安全)和传统的 PKCS#1 v1.5(兼容性)。
- 支持多种哈希算法:SHA-1、SHA-256、SHA-384、SHA-512
- 填充模式选择:支持OAEP(推荐)和PKCS#1 v1.5(传统兼容)
- 多格式支持:输入/输出支持文本、Base64、Hex等多种格式
使用场景
- 安全通信:加密敏感数据后传输
- 数字签名:验证消息的真实性和完整性
- 密钥交换:安全地交换对称密钥
- 身份认证:验证发送者身份
- 软件许可:生成和验证许可证
安全最佳实践
- 密钥长度:至少使用 2048 位密钥。推荐使用 4096 位以获得长期安全性。1024 位已不再安全。
- 填充模式:尽量使用 OAEP 填充而非 PKCS#1 v1.5。OAEP 能有效防止"填充预言机"攻击。
- 密钥保密:永远不要分享您的私钥。拥有私钥的人可以读取您的加密消息或冒充您。
- 混合加密:RSA 计算缓慢且有长度限制。对于大文件,请使用 RSA 加密随机 AES 密钥,然后用 AES 加密文件。
- 仅限客户端:此工具完全在您的浏览器中使用 Web Crypto API 运行。您的私钥永远不会离开您的设备。
常见问题 (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----- 这样的头部中。