长风破浪会有时,直挂云帆济沧海。 —— 李白《行路难》

RSA加密解密与签名验签在线工具 - 密钥对生成与数字签名

RSA-OAEP 公钥加密私钥解密 / 密钥对生成 / 数字签名验签

安全提示:所有运算在浏览器本地完成,密钥和数据不会上传服务器。请妥善保管私钥,丢失无法恢复。推荐使用2048位或4096位密钥。
公钥
私钥

RSA加密解密说明

RSA 是一种非对称加密算法,核心原理是大素数分解难题。加密和解密使用不同的密钥:公钥加密、私钥解密,无需事先共享密码。本工具支持浏览器本地生成 1024/2048/4096 位密钥对,使用标准 -----BEGIN PUBLIC KEY----- 公钥和 -----BEGIN PRIVATE KEY-----(PKCS#8)私钥,支持 SHA-256 和 SHA-1 两种哈希填充。

数字签名验签说明

数字签名使用私钥对数据生成签名,接收方用公钥验证签名,确保数据未被篡改且来源可信。本工具使用 RSASSA-PKCS1-v1_5 签名算法,支持 SHA-256、SHA-384、SHA-512 哈希算法。签名常用于软件分发验证、API 请求签名、JWT Token 签发等场景。

密钥格式说明

本工具支持标准 PEM 公钥(SPKI 格式,以 -----BEGIN PUBLIC KEY----- 开头)和 标准 PKCS#8 私钥(以 -----BEGIN PRIVATE KEY----- 开头)。如果你的密钥以 -----BEGIN RSA PUBLIC KEY----------BEGIN RSA PRIVATE KEY----- 开头,属于 PKCS#1 格式,需要先转换为标准格式才能在本工具中使用。OpenSSH 公钥(ssh-rsa ...)也支持转换为标准 PEM 格式后导入。

常见问题

RSA 加密有长度限制吗?

有。RSA-OAEP 加密的明文长度取决于密钥大小:2048 位密钥 + SHA-256 填充最多加密约 190 字节(约 63 个中文字符),4096 位约 446 字节。因此 RSA 不适合直接加密长文本。实际应用中通常用 RSA 加密一个 AES 密钥,再用 AES 加密数据(混合加密)。如需加密长文本,请使用AES对称加密工具

公钥和私钥分别给谁?

公钥可以公开,发给任何人用来加密数据或验证签名;私钥必须保密,仅自己持有用于解密和签名。如果私钥泄露,攻击者可以解密所有消息并伪造签名。本工具生成的私钥建议下载 .pem 文件妥善保管。

1024 位 RSA 还安全吗?

不安全。NIST 自 2014 年起已停止推荐 1024 位 RSA,推荐至少使用 2048 位以上。1024 位密钥理论上可在合理计算资源下被分解。高安全场景建议使用 4096 位。

加密解密和签名验签有什么区别?

加密解密关注机密性——用公钥加密让只有私钥持有者能解密;签名验签关注完整性和身份认证——用私钥签名证明数据来自你且未被篡改。前者保护数据内容,后者保护数据可信度。两个功能使用独立的密钥对。