RSA 加密/解密
我要提建议RSA-OAEP(SHA-256)公钥加密、私钥解密,可一键生成 2048/3072/4096 位密钥对并从私钥导出公钥,本地 Web Crypto。
相关工具
这个工具是做什么的
RSA 是一对密钥的非对称算法:公钥可以公开,用来加密或验签;私钥必须自己保存,用来解密或签名。两者的关系是单向的——私钥里含有模数与指数,可以推导出公钥,而从公钥反推私钥等价于分解大整数,计算上不可行。本工具可一键生成密钥对,也能由私钥还原公钥,并支持用 RSA-OAEP(MGF1 + SHA-256)加密短明文、用私钥解密。RSA 只适合加密短会话密钥或少量字段,长文本应先用 AES 加密;2048 位密钥下明文建议不超过约 190 字节。所有运算都在本机用本地引擎完成。
使用方法
- 没有密钥:先选密钥长度(2048 / 3072 / 4096 位),点「一键生成公钥 + 私钥」,复制或导出保存 PEM。
- 选择加密或解密模式,在 PEM 框粘贴对应公钥或私钥(含 BEGIN/END 行)。
- 加密:输入短明文;解密:粘贴 Base64 密文。
- 执行后复制结果;解密失败请确认密钥对与加密时一致。只有私钥时,可点「由私钥导出公钥」找回公钥。
常见问题
- 公钥和私钥是什么关系?
- 它们是一对数学上关联的密钥:公钥可以任意分发,用于加密;私钥必须自己保管,用于解密。私钥包含模数与指数,也就是生成公钥所需的全部信息,所以私钥能算出公钥;反过来用公钥算出私钥等价于破解 RSA 所依赖的大整数分解难题,计算上不可行。
- 只有私钥、公钥丢了怎么办?
- 用「由私钥导出公钥」即可:私钥里本来就含公钥信息,同一把私钥导出的 SPKI 公钥是确定的,与生成时完全一致。反之若只剩公钥,就无法得到私钥,只能重新生成一对。
- 密钥长度选多少?
- 2048 位是当前通用选择;3072 / 4096 位更抗暴力破解,但生成与运算更慢,且单次可加密的明文更短。注意 RSA-OAEP 2048 位大约只能加密 190 字节,长内容请用 AES 加密正文后再用 RSA 保护 AES 密钥。
- 生成的密钥保存在哪里?
- 只存在于当前页面的内存中,刷新即消失,页面也不会发送任何网络请求。请及时复制或导出保存,私钥尤其要妥善保管。
- 为什么明文长度有限制?
- RSA 直接加密的数据块受密钥长度与填充影响。2048 位 OAEP 通常只能加密约 190 字节以内,更长内容请用 AES 加密后再用 RSA 保护密钥。
- 支持哪些 PEM 格式?
- 加密需要 SubjectPublicKeyInfo(PUBLIC KEY)公钥;解密需要 PKCS#8(PRIVATE KEY)私钥,与 openssl genrsa / rsa 导出格式需一致。
- 和 AES 工具如何配合?
- 常见模式:随机 AES 密钥加密正文,再用 RSA 公钥加密 AES 密钥。本页只做 RSA 段,AES 请用同站 AES 工具。
- 私钥安全吗?
- 运算在本机用本地引擎进行,但任何在线工具都不应粘贴生产环境长期私钥。仅建议在测试密钥或隔离环境中使用。