反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈! 反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈!
v1.0 · 已上线中英双语纯客户端

RSA 加密RSA Encryption

基于浏览器原生 Web Crypto API 的 RSA 在线加密解密,支持 2048 / 4096 位密钥与 RSA-OAEP(SHA-256 / SHA-1)填充,一键生成密钥对(SPKI 公钥 + PKCS#8 私钥 PEM)并实时识别公私钥,与 Java / Go / openssl 互验。加密敏感字段、联调接口加解密、分发授权 License 更快。密钥与明文全程不上传。

本周使用—·收藏0·版本v1.0.0·最后更新今天·完全免费
方向
密钥长度
OAEP 摘要
输出格式
参数就绪
输入UTF-8 · 0 行
密钥待粘贴 PEM 密钥·单次上限 190 B
输出Base64 · RSA-OAEP
// 点击「加密」或「解密」,结果会显示在这里…
·
执行

工具介绍

3 段详细说明

RSA 加密是非对称加密的行业标准:公钥加密、私钥解密。本工具支持 2048 / 4096 位密钥与 RSA-OAEP 填充(SHA-256 / SHA-1),一键生成密钥对并导出 PEM,加密解密全部在浏览器内完成。

所有运算基于浏览器原生 Web Crypto API(generateKey / exportKey / encrypt / decrypt),密钥与明文不上传任何服务器。2048 位密钥生成通常不到 1 秒,4096 位约 1-3 秒,密文 Base64 / Hex 双格式输出。

相比 openssl 命令行,本工具无需安装、可视化操作,PEM 密钥粘贴即用,并会实时识别公钥/私钥类型与位数,适合接口联调、验证密钥配对、生成测试密钥等场景。支持 ⌘+↵ 快捷键执行、结果一键复制。

基础知识 · RSA 原理

RFC 8017 · 6 张卡片

RSA 由 Rivest、Shamir、Adleman 于 1977 年提出,安全性建立在大整数因数分解的计算难度上。理解下面 6 个概念,就能覆盖日常 RSA 使用中的绝大部分问题:

1key pair公钥 / 私钥配对
公钥加密的数据只有配对私钥能解开。公钥可公开分发,私钥绝不外泄。本工具生成密钥对后公钥自动填入输入区,私钥只在输出区展示一次,需立即保存。
2key size密钥长度
1024 位已被攻破退役;2048 位是当前事实标准(安全强度约 112 bit);4096 位更安全但生成与解密都慢数倍。位数越长,单次可加密的明文上限也越大。
3oaepOAEP 填充
最优非对称加密填充(RFC 8017),带随机性:同一明文每次密文都不同,且可抵抗填充预言攻击。老的 PKCS#1 v1.5 填充已被证明存在脆弱性,新系统一律用 OAEP。
4pemPEM 密钥格式
Base64 + BEGIN/END 头尾的文本封装。公钥标准格式是 SPKI(BEGIN PUBLIC KEY),私钥是 PKCS#8(BEGIN PRIVATE KEY)。BEGIN RSA PRIVATE KEY 是 PKCS#1 传统格式,浏览器不认,可用 openssl 转换。
5block limit单次加密上限
RSA 一次只能加密一个「块」:上限 = 位数/8 − 2×摘要长 − 2。RSA-2048 + SHA-256 → 190 B;4096 位 → 446 B。这是数学硬限制,不是工具限制,超限时工具会提示。
6hybrid混合加密
实际系统几乎不用 RSA 直接加密长文本:用 AES 加密数据(快、无长度限制),再用 RSA 公钥加密 AES 密钥(慢、但只需加密 32 字节)。TLS、JWT JWE、信封加密都是这个套路。
PEM 格式速记
粘贴密钥前先认头尾标记,避免公私钥贴反:
-----BEGIN PUBLIC KEY----- —— SPKI 公钥,用于加密。
-----BEGIN PRIVATE KEY----- —— PKCS#8 私钥,用于解密。
-----BEGIN RSA PRIVATE KEY----- —— PKCS#1 传统私钥,浏览器不支持,需先转换:openssl pkcs8 -topk8 -nocrypt。
不带 PEM 头尾的裸 Base64 也可以粘贴,工具会自动按 SPKI / PKCS#8 双向试探导入。

使用说明

4 步快速入门
1
生成或粘贴密钥
点「生成密钥对」即时生成(公钥自动填入),或粘贴 PEM 格式的公钥(加密)/ 私钥(解密)
2
选择参数
密钥长度(2048 / 4096)与 OAEP 摘要(SHA-256 / SHA-1),解密时需与加密端一致
3
加密 / 解密
输入明文点「加密」得密文;点「交换」把密文填回、配私钥后点「解密」还原
4
保存密钥
私钥只在生成时展示一次,立即复制保存——私钥泄露等于全部明文泄露

使用场景

5 个真实案例
01接口联调加解密

后端用 Java / Go 的 RSA-OAEP 私钥解密,把公钥贴进来验证密文能否正确解开,快速对齐填充与摘要参数。

02生成测试密钥对

不用敲 openssl 命令,一键生成 2048 / 4096 位测试密钥对,导出 PEM 直接用于本地开发与单元测试。

03授权 License 分发

软件作者用私钥加密授权信息,客户端内置公钥校验;用本工具快速验证公私钥配对关系。

04敏感字段脱敏传输

把密码、身份证号等敏感字段用合作方公钥加密后传输,对方私钥解密,中间链路只见密文。

05验证密钥配对

手里有公钥私钥不确定是否一对?公钥加密后用私钥解密,能还原明文即为配对。

常见问题

10 个问答
RSA 加密和解密用同一把钥匙吗?

不。RSA 是非对称算法:加密用公钥,解密用私钥。公钥可以公开分发给别人,私钥必须自己保管,两者必须来自同一次生成的密钥对。

我的密钥和明文会上传到服务器吗?

不会。密钥生成、加密、解密全部通过浏览器原生 Web Crypto API 在本机内存完成,输入内容不上传任何服务器。可断网使用,关闭网络后仍能正常工作。

2048 位和 4096 位怎么选?

2048 位是当前事实标准,生成与解密都快、安全性足够;4096 位安全余量更大,但生成慢 5-10 倍、解密慢约 6 倍。新系统用 2048 起步即可,长期高保密需求选 4096。

为什么明文超过 190 字节就加密不了?

RSA 一次只能加密一个「块」,上限 = 位数/8 − 2×摘要长 − 2。RSA-2048 + SHA-256 就是 190 字节,这是算法的数学限制。长文本请用「混合加密」:AES 加密数据 + RSA 公钥加密 AES 密钥。

为什么每次加密同一明文,密文都不一样?

正常现象。OAEP 填充每次加密都引入随机数,同一明文、同一公钥,每次密文都不同,但配对私钥都能正确解开。随机性正是 OAEP 抵抗填充攻击的安全来源。

PKCS#1 v1.5 填充的密文能解吗?

本工具使用更安全的 RSA-OAEP(浏览器原生支持),不支持 PKCS#1 v1.5 加密填充。Java 默认的 RSA/ECB/PKCS1Padding 属于后者,请对方改用 RSA/ECB/OAEPWithSHA-256AndMGF1Padding 参数。

BEGIN RSA PRIVATE KEY 的密钥为什么不能粘贴?

这是 PKCS#1 传统格式,浏览器 Web Crypto 只认 PKCS#8(BEGIN PRIVATE KEY)私钥与 SPKI(BEGIN PUBLIC KEY)公钥。可用一行命令转换:openssl pkcs8 -topk8 -nocrypt -in pkcs1.pem -out pkcs8.pem

生成的私钥以后还能再拿到吗?

不能。私钥只在点击生成时展示一次,刷新或清空后无法找回。请立即复制保存完整 PEM(含 BEGIN / END 行)。私钥丢失只能重新生成密钥对并替换公钥。

SHA-256 和 SHA-1 摘要怎么选?

优先 SHA-256;只有对接老系统(如 Java 默认 OAEPWithSHA-1AndMGF1Padding)时才选 SHA-1。加解密双方的摘要必须一致,否则解密失败。

与 openssl 互验怎么做?

加密:openssl pkeyutl -encrypt -pubin -inkey pub.pem -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_mgf1_md:sha256;解密:openssl pkeyutl -decrypt -inkey priv.pem(同样带 -pkeyopt 参数)。摘要与位数对齐即可互通。

相关工具

编码加密分类

数据来源

隐私优先
算法:基于浏览器原生 Web Crypto API 的 RSA-OAEP 实现,遵循 RFC 8017,无任何第三方依赖。密钥由操作系统级 CSPRNG 生成,导出为 SPKI 公钥与 PKCS#8 私钥 PEM。
隐私声明:密钥生成、加密、解密均在浏览器内存完成,密钥、明文、密文不上传任何服务器。本工具不记录任何输入、不埋任何分析点。可断网使用,关闭网络后再打开仍能正常使用。