跳转到内容
HexaTransfer
返回博客
加密与安全

密码保护文件传输:保护您的共享文件

为文件传输添加密码保护。了解密码派生加密的工作原理和强密码的最佳实践。

密码保护的文件传输意味着:没有发送方设定的密码,接收方就无法解密文件。密码不只是登录关卡——它是 PBKDF2-HMAC-SHA256(或 Argon2id)的输入,用于派生 AES-256-GCM 密钥来加密文件字节。没有密码,服务器上的密文就是一堆噪音。这与"密码门控"传输工具有本质区别——那类工具以明文存储文件,仅在 HTTP 层面检查密码。真正的密码保护将密码与密码学本身捆绑在一起。

门控与派生的本质区别

2020 年前的大多数消费级文件共享平台使用密码门控。你上传一个 PDF,服务器将其存储在 S3 上,一个后端控制器在将文件交给用户前检查提交的密码是否与 bcrypt 哈希匹配。拥有数据库访问权限的管理员或持有传票的执法机构可以看到一切。密码派生加密将这个逻辑翻转:浏览器用 60 万次迭代的 PBKDF2(OWASP 2023 基准)将密码拉伸为 256 位密钥,上传前在本地完成加密。服务器持有密文和随机盐值。没有密码,没有密钥,没有文件。Firefox Send 在 Mozilla 于 2020 年关闭它之前采用的就是这个模式。

PBKDF2 与 Argon2id 的选择

PBKDF2 是主力选项——内置于 Web Crypto API,全平台运行,高迭代次数时具备暴力破解抵抗力。Argon2id 更新且更优:内存硬化,使 GPU 攻击者无法廉价地穷举密码字典。问题是浏览器支持。原生 Argon2 尚未进入 Web Crypto,因此各服务通过 libsodium.js 实现,会为包体积增加约 180 KB。对于真正瓶颈在于上传带宽的 10 GB 传输,Argon2id(m=64 MB、t=3、p=1)的额外开销是值得的。对于 20 MB 的附件,PBKDF2(60 万次迭代)在中端手机上约 400 ms 完成,完全可以接受。

什么样的密码才足够强

12 位大小写字母、数字和符号混合的密码,熵值约为 78 比特——对 2026 年针对 Argon2id 的离线攻击已经足够。四个单词的 Diceware 密码短语(类似 correcthorsebatterystaple 风格)达到 51 比特,且更易于口述传达。即便使用了 KDF 拉伸,也要避免短密码:攻击者拿到被盗密文和盐值后,可在一张 RTX 5090 上以每秒 2000 万次的速度猜测 PBKDF2。六位字符密码几分钟内就会被破解。长度比复杂度更重要。每次有人尝试使用 "Summer2026!" 时都值得提醒他们这一点。

共享密码而不暴露目的

在同一邮件线程中发送文件链接和密码,等于白费力气。控制收件箱的攻击者会同时拿到两者。务必分开渠道:通过邮件发送链接,通过短信或 Signal 发送密码。更好的做法是使用一次性密钥服务(如 1Password 的 Psst!)或无法转发截图的应用内 Slack 私信。对于固定往来的接收方,提前协商好一套带外密码推导方案(例如"月份名称加项目 ID"),让任何敏感信息都无需经过网络传输。

盐值、随机数与密码无关

密文旁边存储着三个字段:KDF 用的盐值(16 字节)、GCM 用的随机数(12 字节)以及认证标签(16 字节)。这些都不需要保密——只需要每次传输唯一即可。在 GCM 模式下,用相同密钥复用随机数是灾难性的:会泄露两段明文的异或值。通过 crypto.getRandomValues() 生成密码学随机数可确保唯一性,盐值存储在文件元数据头部。密码是唯一的秘密,其他所有内容都随密文一起传输。

防御客户端篡改

恶意的浏览器扩展可以在用户输入时读取密码。缓解措施包括:Content Security Policy 头禁止内联脚本和外部连接(connect-src 'self')、对所有打包的 JavaScript 使用子资源完整性(Subresource Integrity),以及严格的 Referrer-Policy 防止 referrer 泄露给分析服务商。用子资源哈希审计 WASM 包。这些措施对被入侵的操作系统无济于事,但能将门槛抬高到超出普通窃听者的范围。HexaTransfer 发布其 SHA-384 哈希,高级用户可自行验证加载的包与源代码仓库一致。

中断下载的恢复与密钥安全

5 GB 的 ISO 文件下载可能耗时数小时。标签页关闭后,应能在不重新输入密码的情况下恢复。将派生密钥存入 SessionStorage(绝对不用 LocalStorage——它跨重启持久化),下载完成或标签页关闭时立即清除。对于分块模式,每个 5 MB 块由从主密钥 HKDF 派生的子密钥加密;这样暂停后恢复会话只暴露当前块的子密钥,而不是根密钥。

密码保护何时不够

密码保护无法阻止授权接收方再次分享文件。Jane 一旦解密了 .docx,就可以转发给任何人。对于真正的访问控制,需要将密码与 DRM 式限制结合使用:单次下载链接、IP 绑定访问,或短暂的过期窗口(例如 PCI DSS 4.0 证据包的 15 分钟有效期)。对于符合个人信息保护法(PIPL)第三章规定的数据跨境传输,还需记录谁在何时访问了哪些内容。密码保护是底线,而非上限——它提升了偶然截获的代价,但不解决内部威胁问题。

在 hexatransfer.com 上试试 — 免费、无需注册、最多 10 GB。

通过端到端加密安全发送大文件

通过端到端加密免费传输最大10GB的文件。无需注册账户。文件在上传前在浏览器中加密,其他人无法读取。

发送文件