免费工具

用密码加密文件

通过聊天软件或邮件发出去的文件,会以明文躺在他们的服务器上。不如在这里把它加密:密码变成密钥,文件变成一串没有密码就读不出来的字节。加密和解密都在你的浏览器里进行,文件不会上传到任何地方。

用浏览器内置的功能做 AES-256。密码请和文件分开交给对方。

把文件拖到这里 或者

全部在浏览器里计算:文件既不会传到我们这里,也不会传到别处。密码不会保存在任何地方——忘了密码,就等于丢了文件。

加密后的文件里装着什么

得到的是一个扩展名为 .404enc的文件。它的开头是格式标记、密钥拉伸的轮数、一段随机盐和初始化向量——这些都不是秘密,而且必须有它们,才能用同一个密码解开文件。再往后是 AES-256-GCM 密文,原始文件名就藏在里面:像“护照扫描件.pdf”这样的名字,不用解密也知道里面是什么,所以文件名同样被藏起来。

GCM 模式会校验完整性:文件里哪怕改动一个字节,解密也不会吐出一个坏掉的结果,而是老老实实地拒绝。密码不对时它的表现一模一样——两者无法区分,这样才对。

一点限制

整个文件都要进到标签页的内存里:几百兆浏览器扛得住,几十 GB 就不行了。大的压缩包还是用桌面程序更好。另外请记住,加密文件保护的是内容,不是“发送”这件事本身:你给某人发过东西,这一点依然看得见。

相关工具: 密码生成器, 清除照片元数据404 Send,如果文件要直接传过去,绕开别人的服务器。

内容遮住了,路还露着

就算看不到内容,你在什么时候把文件发给了谁,依然看得见。404 VPN 遮住的正是这一部分,而访问日志我们不保存。

原理 →

常见问题

guest@404vpn:~$ cat file-crypt-faq.md
[01] $ 这比带密码的压缩包好在哪?
> 好在什么都不用装,也好在这里用的算法确定是现代的。老式 ZIP 压缩包的加密几分钟就能破,而某个压缩包里究竟用的是哪种加密,从文件本身看不出来。这里永远是 GCM 模式的 AES-256:它不仅藏住内容,还能发现文件在路上有没有被掉包或损坏。
[02] $ 密码该往哪儿发?
> 走任何一条和文件不同的渠道。要点在于分开:万一通信记录被人读到,里面不能同时有文件和密码。文件是用邮件发的,密码就用语音说,或者用聊天软件发;反过来也一样。
[03] $ 要是我忘了密码会怎样?
> 文件将永远无法读取。我们不保存密码、密钥,也不保存文件副本——没有东西可以恢复,也没有人能恢复。这不是小字条款,而是设计本身:一个能帮你恢复文件的服务,也就能读你的文件。
[04] $ 五个字母的密码够安全吗?
> 不够。密钥是从密码经过拉伸推导出来的——一百万轮 PBKDF2,为的是让穷举变贵——但这救不了一个短的字典密码。取三四个互不相干的词,或者用我们的密码生成器:在这里长度比特殊符号更重要。
[05] $ 文件真的不会发到你们那里吗?
> 真的。全部由 WebCrypto 计算——就是浏览器用来加密你的连接的那一套——而且是在标签页里算的。加密和解密时,页面一个网络请求都不发;在开发者工具的“网络”标签里就能看到。