关注我的公众号:【编程朝花夕拾】,可获取首发内容。
01 引言
在 Java 企业级开发中,传递敏感信息(API Key、数据库密码、临时凭证、合同附件)是个头疼的事。微信?不安全。邮件?留痕。Slack/钉钉?聊天记录删不掉。
Cryptgeon 提供了一个优雅的方案:加密链接,阅后即焚,服务器看不到明文。还可以用来传递只属于两个人的秘密。
02 简介
2.1 项目介绍
Cryptgeon 是一个开源的加密笔记/文件分享服务,灵感来自 PrivNote,采用 Rust + Svelte 构建。服务器零知识、客户端 AES-256-GCM 加密、内存存储阅后即焚。中文名又叫加密鸽。
Cryptgeon会为每条笔记都生成一个独立的 id (256bit) 和 key 256(bit).其中id用于保存和提取密信, 在这之后这封密信将会被客户端使用 AES 算法的 GCM 模式和key进行加密然后发送至服务器,数据将会保存在服务器的内存中且永远不会被持久化到硬盘上,服务端永远不会得到密钥并且无法解读密信的内容。

GitHub地址:github.com/cupcakearmy...
Demo演示地址:cryptgeon.org/

2.2 主要功能
- 服务端无法解密和查看客户端加密的内容
- 查看次数或时间限制,阅后即焚
- 您发送的数据将存放于内存中,不会写入到磁盘中
- 黑暗模式支持
03 部署
官网的演示地址可以直接使用,也支持自己部署。我们以Docker部署为例。
Docker镜像地址:https://hub.docker.com/r/cupcakearmy/cryptgeon

3.1 拉取镜像
bash
docker pull cupcakearmy/cryptgeon

3.2 启动镜像
镜像的启动以来Redis。

我们先启动Redis的容器,也可以使用自己已经部署好的Redis,我这里直接拉取。
bash
docker run -d --name redis-ram -p 6379:6379 redis:7-alpine redis-server --save "" --appendonly no

然后启动加密鸽的容器:
bash
docker run -d --name cryptgeon -p 8000:8000 --link redis-ram:redis cupcakearmy/cryptgeon

3.3 启动界面
启动界面和官网的演示界面一致。

04 测试
4.1 测试小坑

首次检测时会出现问题,这是由于Cryptgeon 的加密功能需要 HTTPS 环境:

我们通过配置Nginx反向代理解决。
需要配置自签证书。

直接访问:https://ip
浏览器会提示不安全,点击 "高级" → "继续前往" 即可(自签名证书正常现象)。

4.2 正常测试

创建完成之后就会生成分享链接和二维码。
将链接分享给你的密友即可。


4.3 高级功能

- 支持文件查看
- 控制浏览次数或者有效期
- 自定义密码
05 小结
Cryptgeon 用 Rust 的性能、Svelte 的轻量、Redis 的内存速度,组合出了一个简洁有力的加密分享方案。
对于 Java 开发者来说,它解决了敏感信息传递的痛点------不需要复杂的 PGP 配置,不需要专门的加密中间件,一个 Docker 容器 + 几行 Java 代码就能搞定。