一个为了在 v2ex 评论区安全发邮箱而临时写的小工具。
一个基于 React 和 Node-forge 的在线非对称加密工具,支持 RSA 加密算法,可以安全地加密和解密消息。无需注册和服务器,所有数据和计算都在浏览器本地完成。
- 🔐 生成 RSA 密钥对
- 📤 导出私钥文件
- 🔗 生成带公钥的分享链接
- 🔒 加密消息
- 🔓 解密消息
- 💻 完全客户端运算,数据不经过服务器
访问 在线非对称加密工具 即可开始使用。
- 克隆项目
git clone https://github.com/s1ntoneli/rsa.git
- 安装依赖
cd rsa
npm install
- 启动开发服务器
npm run dev
-
接收方生成密钥对
- 点击"生成新密钥对"按钮
- 保存私钥文件到安全位置
- 复制分享链接发给发送方
-
发送方加密消息
- 打开接收方分享的链接
- 在文本框中输入要发送的消息
- 点击"加密"按钮
- 复制生成的加密消息发给接收方
-
接收方解密消息
- 将收到的加密消息粘贴到解密区域
- 点击"解密"按钮查看原始消息
- 私钥是解密消息的唯一凭证,请务必安全保管
- 建议定期更换密钥对
- 不要在不信任的设备上使用私钥
- 敏感信息建议线下传递
- React - UI 框架
- Node-forge - RSA 加密实现
- TailwindCSS - 样式框架
- React Router - 路由管理
- Vite - 构建工具
v2ex 上面很多帖子要求评论区发邮箱。一般人想发邮箱,但是又出于隐私考虑,只能发一个 base64 的邮箱。然而,这样仍然不安全,因为 base64 可以很简单地被解码。
为此,便可以使用 RSA 非对称加密来做这件事情。
但是,现在网站上所有的在线工具 RSA 都必须自己手动输入公钥以及要加密的内容。这就非常不方便。
这个在线工具主要特点就是支持了分享链接功能,分享的链接自动携带公钥。
这样,当你发帖子要求用户输入邮箱的时候,只需要把带有自己公钥的链接发出去。这样用户直接点击链接输入他们要加密的邮箱,就可以得到加密好的数据。
帖主拿到加密后的数据后,在自己的页面用自己的私钥进行解密,这样可以保证用户在评论中回复帖主的要求时,隐私数据只能被帖主解密。
欢迎提交 Issue 和 Pull Request。
本项目采用 MIT 协议开源。