文件加密/解密

我要提建议

给办公文档、图片、视频、压缩包、可执行文件加解密:可选 AES-256-GCM / CBC / ChaCha20,分块处理并预估耗时与体积。

相关工具

这个工具是做什么的

给一份合同、一段视频或一个安装包加密码,最省事的做法是丢进加密软件;本工具把这件事搬到本机:选文件、输入密码即可,数据不出设备。为了能处理视频这类大文件,加密采用分块方案——每块单独加密,块 IV 由随机基础 IV 与块序号派生,因此同一次加密里不会出现 IV 复用(AES-GCM 一旦 IV 重复就会彻底失效)。密钥来自密码,用 PBKDF2-HMAC-SHA256 加随机盐派生,盐与迭代次数写在文件头里,解密时按需读取,因此以后提升参数也不影响老文件的解密。三种算法各有取舍:AES-256-GCM 与 ChaCha20-Poly1305 带完整性校验,密文被改动会直接报错;AES-256-CBC 兼容性好但没有校验,只保证机密性。开始前会按本机实测吞吐给出体积与耗时预估。

使用方法

  1. 选择目标文件(任意类型:文档、图片、视频、压缩包、可执行文件)。
  2. 加密:选择算法、设置密码并确认;页面会给出加密后的体积与预计耗时。
  3. 解密:直接选择 .enc 文件,工具会读取文件头显示原文件名与大小,输入当时设置的密码即可还原。
  4. 处理完成后点击导出保存结果;中途可看到进度与预计剩余时间。

常见问题

大文件会卡死或内存溢出吗?
不会一次性把整个文件交给加密库:实现按 4 MB 分块处理,每块算完再进入下一块,并定期让出主线程刷新进度。但浏览器仍需把文件读进内存,所以文件过大(接近 1 GB)会失败——本工具在 300 MB 以上会提示风险,超过 1 GB 直接拒绝,避免页面崩溃。
加密后的体积会变大多少?
容器头部固定 58 字节加文件名字节数;每个数据块在 GCM / ChaCha20 下追加 16 字节认证标签,CBC 下按 16 字节对齐补位。因此体积增长通常只有万分之几,页面在选择文件后就会给出精确的预估大小。
耗时预估准吗?
预估由两部分组成:一次密钥派生的固定开销(PBKDF2 迭代 30 万次,通常几十到几百毫秒),加上按本机实测吞吐换算的加解密时间。吞吐是选中文件时现场测量的,不同设备差异很大(有没有 AES 硬件加速可能相差十倍),所以比写死常数靠谱。
忘记密码还能恢复吗?
不能。密钥完全由密码派生,没有任何后门或恢复途径。请务必把密码存进密码管理器——文件加密的第二常见悲剧就是密码丢了。
AES-CBC 和 GCM 该选哪个?
优先选带认证的 AES-256-GCM 或 ChaCha20-Poly1305:它们能发现密文被篡改,解密失败会直接报错。只有在需要与老系统互通、对方明确要求 CBC 时才选 CBC,并清楚它无法检测篡改。
文件会被上传吗?
不会。读取、加密、解密全部在本机用本地引擎完成,数据不出设备。不过加密完成后请自行妥善保管密码与文件。