FileKey 是一款离线 Web 应用,让你可以使用通行密钥(passkey)快速加密和共享文件。无需账户、无追踪、无云端。
🛡️ FileKey 免费、开源,并且以隐私为先。 访问 filekey.app。
创建你的 FileKey
创建一个存储在密码管理器或安全密钥中的通行密钥(iCloud 钥匙串、Google 密码管理器、1Password、YubiKey 等)。
加密文件
将任意文件(或整个文件夹)拖入 FileKey。它会立即使用 AES-256 加密,并保存为 name.filekey。
解密文件
将加密文件拖回。你的通行密钥会在本地安全地解锁它。
私密共享
将文件加密到某人的 Share Key(只有他们能打开),或分享一个“发文件给我”链接,以便从任何人那里接收加密文件。
保存恢复代码
可选地保存一份一次性恢复代码,这样即使丢失通行密钥,你也能重新取回自己的文件。
FileKey 需要一个支持 WebAuthn PRF 扩展的通行密钥提供方:兼容的密码管理器(Apple 密码、Google 密码管理器、1Password 等)或 FIDO2 硬件安全密钥(YubiKey 5 / Bio 系列)。你的浏览器和操作系统还必须支持 WebAuthn + PRF。以下是非详尽的兼容性表格:
⚠️ 注意:
- 提供方必须实现 WebAuthn PRF 扩展;支持情况因应用和版本而异,因此如果某个管理器目前无法使用,很可能是它还没有提供 PRF。
- 基于 Chromium 的浏览器(Brave、Vivaldi、Opera)通常可以使用。
- Windows 10 及更早版本不支持 PRF。
FileKey 从通行密钥中派生你的加密身份。当你创建 FileKey 时,系统会以应用的域(filekey.app)作为依赖方(relying party)注册一个通行密钥。认证时会对固定输入运行通行密钥的 PRF 扩展,产生一个确定性的秘密,且该秘密永远不会离开你的设备。该秘密再经 HKDF-SHA-256 派生你的长期身份密钥对,因此同一个通行密钥总能再现同一个身份,除了通行密钥本身之外无需存储任何内容。
文件使用 HPKE(混合公钥加密,RFC 9180)的 Auth 模式加密,采用 DHKEM-P256 + HKDF-SHA-256 套件。HPKE 会为每个文件派生出全新的密钥,文件主体则采用流式、分块的结构以 AES-256-GCM 密封,因此任意大小的文件都能加密和解密,而无需整体驻留在内存中。加密给自己时使用你自己的公钥;共享时则使用接收者的公钥。所有操作都完全在你的设备上、通过经过审计的加密库完成。
🛡️ 你的通行密钥是唯一的凭证。没有其他需要存储的内容,也不会有任何内容离开你的设备。
每个 FileKey 用户都有一个唯一的 Share Key,即菜单中“Your Share Key”下的一长串公开字符串。公开分享它是安全的;它是一个公开地址,而不是秘密。
name.shared.filekey。你可以通过任何方式发送它:电子邮件、即时通讯、文件传输。.shared.filekey 文件拖入。分享一个“发文件给我”链接(其中嵌入了你的 Share Key)。任何人都可以(无需账户、无需通行密钥)在浏览器中直接用它加密一个文件发给你,然后把结果发送给你。只有你能打开它。
由于你的身份来源于通行密钥,丢失通行密钥通常意味着失去访问权限。FileKey 提供可选的恢复代码,即一个由 24 个单词组成的短语(BIP39),用于备份你的身份。保存一次,放在安全的地方,之后即可恢复访问。
FileKey 还附带一个自包含的离线恢复工具(recover.html):一个可以保存在磁盘上的单一 HTML 文件。借助你的恢复代码,它可以完全离线解密你的 .filekey 文件,即使 FileKey 网站将来消失也没有问题。
两道安全网:
打开 FileKey,点击地址栏中的安装图标并确认。它会作为独立的离线应用打开。
在 Safari 中打开 FileKey → 点按分享 → 添加到主屏幕 → 添加。
打开 FileKey → 点按“添加到主屏幕”(横幅或 ⋮ 菜单)→ 确认。
由于 FileKey 是没有后端的静态网站,你也可以自托管它(见下文)。
FileKey 是一个使用 Bun 构建的静态网站:
cd reference
bun install
bun test # crypto-core tests
bun run build:web # build the app
bun run serve # serve it locally
构建输出为纯静态文件。你可以将它们托管在任意静态托管服务或自己的服务器上。
自托管说明: 通行密钥的依赖方 ID(relying-party ID)由可注册域名(即主机名的最后两个标签)派生而来。请将 FileKey 托管在你自己的根域或子域上(例如
files.example.com→ RP-IDexample.com)。如果某个主机名的可注册域名是公共后缀(例如you.github.io——浏览器会拒绝将github.io作为 RP-ID),则将无法使用;请改用自定义域名。
FileKey 1.1 使用一种新的、基于标准的格式,无法打开由原始 FileKey 创建的文件。旧文件仍可在 v1.filekey.app 使用同一个通行密钥打开,FileKey 在检测到旧文件时会自动将你引导至那里。原始 v1 源码位于 v1 分支。
🔒 filekey.app – 应用本身
📜 Substack – 我们的博客
💬 Signal 群组 – 与我们交流
| 平台 | 通行密钥提供方 | 备注 |
|---|
| macOS | Apple 密码、1Password、YubiKey | Safari ≥ 17 或 Chrome ≥ 112。YubiKey 在 Safari 中可能无法使用。 |
| iOS / iPadOS | Apple 密码、1Password | Safari ≥ 17 或 Chrome ≥ 112。 |
| Windows | 1Password、YubiKey | Edge ≥ 112 或 Chrome ≥ 112。需要 Windows 11。 |
| Android | Google 密码管理器、1Password、YubiKey | Chrome ≥ 112。 |
| Linux | YubiKey(通过浏览器) | 较新的 Chrome / Chromium 浏览器。 |