Cryptomator 使用指南:云盘文件如何做到只有自己能读
【免费下载链接】cryptomatorCryptomator for Windows, macOS, and Linux: Secure client-side encryption for your cloud storage, ensuring privacy and control over your data.项目地址: https://gitcode.com/GitHub_Trending/cr/cryptomator
Cryptomator 是一款跨平台的客户端加密工具,在本地把文件加密成密文后再交给 Dropbox、OneDrive、Google Drive 等网盘同步,云端永远只存密文。它开源、免账号、支持 Windows、macOS 和 Linux,当前稳定版为 1.19.3,源码采用 GPLv3 许可,任何人都可以审查其加密逻辑。
它解决什么问题
想象一个场景:你把自己的合同、照片、工作文档放在网盘里,方便手机电脑随时同步。但网盘的加密是服务商统一管理的——理论上,服务商有密钥,也有能力查看你的文件。你信任它,只是因为你没有更好的选择。
另一个更具体的麻烦:你需要和同事共享一部分文件,但不想把全部网盘内容暴露给对方。逐文件加密又太麻烦,手动复制粘贴更是不可持续。
Cryptomator 的思路是把密钥完全掌握在自己手里。它在网盘目录里创建一个「保险库(Vault)」文件夹,你在本地解锁后,它会挂载出一个虚拟驱动器或虚拟卷,你像操作 U 盘一样在里面读写文件。写入时自动加密,读取时自动解密,同步到网盘的只是乱码一样的密文文件。忘了密码也没关系——它提供 32 个单词组成的恢复密钥,可以重新生成密码。
快速上手:从安装到第一个加密卷
- 下载并安装对应平台的安装包(Windows / macOS / Linux),或从源码构建:克隆仓库后执行
./mvnw clean install(构建需要 JDK 26),产物在target目录下。 - 打开应用,选择「新建保险库」,指定保险库位置——通常选你网盘同步目录下的一个子文件夹(如 Dropbox 目录)。
- 设置一个密码。应用会立刻生成一把 256 位的主密钥,用密码通过 Scrypt 密钥派生算法(一种故意让暴力破解变慢变贵的算法)保护起来。
- 保存好自动生成的 32 词恢复密钥。这是密码丢失时的唯一找回途径,建议打印或离线保存。
- 解锁保险库。Windows 上会出现一个 V 盘这样的虚拟驱动器,macOS 上是一个挂载卷,Linux 上是 FUSE 挂载点。
- 往里面放文件即可。同步完成后,去网盘网页上确认:只能看到随机名字的文件和两个配置文件(
vault.cryptomator、masterkey.cryptomator)。
原理拆解:加密发生在哪
整条链路的关键点:加解密全部发生在你的设备内存里。网盘同步程序只是看到了一堆它不认识的二进制文件,原封不动地上传;服务器端没有你的密钥,拿到密文也无法还原。文件名同样经过加密,目录结构在云端是打乱的,连「我存了什么文件」这类元信息都被隐藏。
安全设计细节
密钥管理:用完即清
主密钥是 256 位随机数,平时只以加密形式存在masterkey.cryptomator文件里。解锁时由密码派生解密密钥,加载进内存,锁定时立刻销毁。源码里能看到这个习惯:RecoveryKeyFactory.java 中每次用完原始密钥字节,都会先Arrays.fill清零再释放,避免残留堆内存。
加密算法选型:SIV_GCM
新建保险库时固定使用CryptorProvider.Scheme.SIV_GCM(见 CreateNewVaultPasswordController.java 第 197 行):
- 文件内容:AES-256-GCM,带认证标签,文件被篡改过一眼就能识别
- 文件名:AES-SIV,确定性的认证加密,保证同一名字加密结果一致(这样云端才能正确映射),且无法反推原名
保护层级对比
| 保护对象 | 机制 | 作用 |
|---|---|---|
| 文件内容 | AES-256-GCM 认证加密 | 密文不可读,篡改可检测 |
| 文件/目录名 | AES-SIV | 云端无法看出文件名与目录结构 |
| 主密钥 | 密码 + Scrypt 派生加密存储 | 离线暴力破解成本极高 |
| 恢复密钥 | 32 词助记短语 | 忘密码可重置,不必丢数据 |
平台与云盘支持对照
仓库通过LocationPresetsProvider接口自动探测各网盘在本机的默认路径(locationpresets 目录),实际存在的实现如下:
| 云盘服务 | Windows | macOS | Linux | 备注 |
|---|---|---|---|---|
| Dropbox | ✅ | ✅ | ✅ | 三个平台各自的路径实现 |
| OneDrive | ✅ | ✅ | ✅ | 三平台均有实现 |
| Google Drive | ✅ | ✅ | — | macOS 版按账户名自动发现多账户 |
| iCloud | ✅ | ✅ | — | 仅 Windows 与 macOS |
| MEGA | ✅ | ✅ | ✅ | 跨平台共用一个路径实现 |
| pCloud | ✅ | ✅ | ✅ | 跨平台共用一个路径实现 |
| Leitzcloud | ✅ | ✅ | ✅ | 跨平台共用一个路径实现 |
注意:这只是「路径预设」。理论上任何会同步到本地目录的网盘(ownCloud、Nextcloud 等)都能用,只是没有开箱即选的快捷方式。
选型建议:适合谁、不适合谁
适合:
- 文件存网盘、担心服务商窥视的个人用户
- 需要给网盘中的敏感数据加一层「只有自己可读」保护的人
- 使用 WebDAV 或本地目录网盘、想无感透明加密的场景
不适合:
- 需要多人实时协作编辑同一文档的团队(Cryptomator 面向个人,团队方案是另一套 Hub 模式,且有独立授权要求)
- 移动端为主的用户(本仓库是桌面端,手机需用官方 App 打开同一保险库)
- 要求文件在云端可被他人检索、分享的场景——加密后这些能力全部失效
常见问题
忘密码怎么办?用创建时保存的 32 词恢复密钥,在应用内走「恢复密钥」流程重设新密码。没保存恢复密钥的话,数据确实无法找回——这是客户端加密的代价。
性能影响多大?加解密在内存中进行且只发生在读写瞬间,日常办公文件几乎无感;大文件(视频、镜像)的吞吐会受 CPU 加密速度限制,属于正常开销。
能离线使用吗?可以。保险库本质是本地文件夹里的密文,断网后解锁照样读写,只是不会同步。
能同时开多个保险库吗?可以,每个保险库独立密码、独立密钥,互不影响,这也是 README 明确列出的能力之一。
写在最后
Cryptomator 的价值不在多花哨的功能,而在「密钥不出本地」这条底线:算法公开、源码可审计、版本持续更新(1.19.3 修复了 Windows 文件扩展名注册等问题,代码仓库当前开发版本为 1.20.0-SNAPSHOT)。如果你需要把私有文件放进网盘,它是目前桌面端最成熟的选择之一。仓库地址:https://gitcode.com/GitHub_Trending/cr/cryptomator ,官方文档与安全架构说明可参考仓库内 README.md 及 CHANGELOG。
【免费下载链接】cryptomatorCryptomator for Windows, macOS, and Linux: Secure client-side encryption for your cloud storage, ensuring privacy and control over your data.项目地址: https://gitcode.com/GitHub_Trending/cr/cryptomator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考