功能说明
本工具使用口令对文件进行加密和解密,遵循 age(age-encryption.org/v1)的设计哲学 —— 这一现代文件加密格式正是为了回应 PGP 的复杂性而生。age 的核心理念:小巧、明确、带认证的加密,没有密钥签名网络,没有过期的密钥包,也没有你未曾要求的算法协商。选一个口令,得到一个加密文件。界面仅此而已。
输出是一个自描述的信封:以 cosmodev-age-v1 魔数头开始,随后是全新随机的 16 字节盐、12 字节 IV,以及用 AES-256-GCM 认证加密密封的文件。256 位密钥通过 PBKDF2-SHA256(100,000 次迭代)从你的口令拉伸而来,使暴力破解被窃取的文件代价高昂。一切都在浏览器中通过 Web Crypto API 100% 客户端运行 —— 文件和口令永远不会离开你的机器。(注意:这是基于 Web Crypto 原语的 age 风格加密;官方 age CLI 使用 scrypt + ChaCha20-Poly1305,无法读取这些文件。)
人们为什么从 PGP 转向 age:
| age | PGP/GPG | |
|---|---|---|
| 范围 | 文件加密,仅此而已 | 邮件、密钥、签名、身份 —— 一整套 PKI |
| 密钥 | 一把小型接收者密钥,或者只用一个口令 | 密钥环管理、过期、信任级别 |
| 输出 | 紧凑的二进制或 ASCII 装甲文本 | 携带版本 + 算法元数据的大型数据包 |
| 算法 | 一套明确的现代套件(AEAD) | 协商出的套件,有些已有几十年历史 |
| 失败模式 | 响亮的认证标签错误 | 历史遗留的解析器怪癖、“不受信任但仍显示”之墙 |
使用方法
- 用切换开关选择加密或解密。
- 把文件拖入放置区(或点击它浏览文件)。任何文件类型都可以。
- 输入口令。用眼睛按钮显示或隐藏它。
- 按加密文件 / 解密文件。结果自动下载,并同时对比原始与输出大小,让你看到 59 字节的开销(头 15 B + 盐 16 B + IV 12 B + GCM 标签 16 B)。
示例
加密一个备份:
secrets.tar (48.0 KB) + 口令 blue heron circles midnight → secrets.tar.age (48.1 KB, +59 B)
再解密回来:
secrets.tar.age + 同一口令 → secrets.tar,与原文件逐字节一致
口令错误:
secrets.tar.age + 任何其他口令 → Decryption failed: wrong passphrase or corrupted file. - GCM 标签校验失败,不会写入任何内容。
补充说明
- 零服务器接触: 一切通过浏览器的 Web Crypto API 运行。没有上传、没有日志、没有账户。你可以断开网络,工具照常工作。
- 为什么要认证加密? AES-256-GCM 的 16 字节标签证明文件在加密之后未被修改。篡改任何一个字节 - 头、密文、IV 或盐 - 都会让解密响亮地失败,而不是返回损坏的数据。
- 头部是特性。 age 风格的文件会自我声明:工具检测
cosmodev-age-v1魔数前缀,拒绝解密任何其他内容,因此你绝不会意外地把一个普通文件“解密”成垃圾。 - 口令强度就是全部安全模型。 没有密钥恢复、没有托管、没有重置。忘记口令,文件就无法找回 - 这是设计使然。
- 同一文件加密两次,每次输出都不同,因为盐和 IV 在每次加密时都全新随机。
- 相关工具: Passphrase Generator(挑选强口令短语)、File Encryptor(不带 age 框架的相同加密)、Text Encryptor(加密文本片段而非文件)。