7z 压缩包密码:加密、取消与忘记密码的处理

7-Zip 的加密能力来自 7z 格式本身的 AES-256 实现。以下说明怎么设置密码、要不要连文件名一起加密、如何取消密码,以及忘记密码时现实可行的选择——不包含任何绕过手段。

稳定版 26.06 文档更新 2026-11-10 依据 7-zip.org

7z 的加密是什么

7z 与 ZIP 格式支持 AES-256 加密。7z 的做法是用 SHA-256 从口令派生密钥,并通过较多迭代次数增加每次猜测的计算成本——这不会让弱口令变强,但会显著拖慢批量尝试。

加密保护的是什么

  • 文件内容:没有口令无法还原明文。
  • 文件名校验:开启后连列表都不可见。
  • 完整性:解压时仍会做 CRC 校验。

加密不能解决的问题

  • 口令泄露:口令一旦被第三方获知,加密即失效。
  • 口令太弱:短口令与常见词仍可被字典命中。
  • 传输安全:压缩包本身仍需要一个可信的传递渠道。

图形界面设置密码

以 Windows 版 7-Zip File Manager 为例。

  1. 选中文件或文件夹,点“添加”

    在 7-Zip File Manager 中选中要压缩的内容,工具栏点“添加”,打开压缩设置窗口。

  2. 把压缩格式设为 7z

    加密文件名是 7z 格式的特性,ZIP 不支持。若下拉框里选的是 ZIP,这一项会不可用。

  3. 输入两次密码

    在“加密”区域填写密码并确认。输入框旁的“显示密码”可以核对是否输错,公共场合慎用。

  4. 按需勾选“加密文件名”

    涉及敏感文件名时勾选;仅防内容被看到时可以不勾。勾选后,忘记密码连文件清单都无法查看。

压缩完成后建议立刻做一次验证:用错误密码尝试打开,确认会失败;再用正确密码解压一个小文件,确认能读出内容。不要等到需要时才检查。

命令行设置密码

推荐让 7-Zip 交互式询问密码,而不是把密码写在命令里。

7z a -t7z -p -mhe=on "D:\backup\secret.7z" "D:\work\secret"

只写 -p 会提示输入;写成 -pMyPass 则密码会进入命令历史与进程列表,不适合在共享机器上使用。

解压带密码的包时,同样建议只写 -p 让程序询问:

7z x "D:\backup\secret.7z" -o"D:\restore" -p

若要在脚本中无人值守运行,应把口令放在受控的环境变量或密钥管理服务里,而不是明文写进脚本文件。完整参数见 7z 命令行参数。

要不要加密文件名

这是最容易被忽略、也最容易造成信息泄露的一项。

两种加密方式的可见性差异
项目 只加密内容 加密文件名(-mhe=on)
文件内容需密码需密码
文件名与目录结构可直接查看需密码
文件大小与数量大致可见不可见
忘记密码后的可恢复性同样不可恢复同样不可恢复
适用格式7z、ZIP仅 7z

合同、财务、客户资料这类“文件名本身即敏感信息”的场景,应当开启文件名加密;仅用于防止家人误开的场合则不必。

取消密码的正确做法

7-Zip 不能直接修改或删除已有压缩包的密码,只能重打包。

  1. 用原密码解压

    解压到一个空目录,确认文件数量与体积正常,避免用不完整的副本重新打包。

  2. 重新压缩,不填密码

    关键一步:压缩设置里把密码框留空,并确认“加密文件名”未勾选。若沿用上次的设置,密码可能被一并带过去。

  3. 验证新包

    新包应当可以直接列出内容并解压。确认无误后再处理旧包,避免中途丢失唯一副本。

忘记密码之后

先接受一个前提:AES-256 加密的 7z 没有“找回”功能,也没有官方后门。

现实可行的方向

  • 回忆并尝试自己常用的口令组合、大小写与符号变体。
  • 查找密码是否记录在密码管理器、邮件或聊天记录中。
  • 联系压缩包提供方重新获取,通常比破解更快。
  • 确认是否有未加密的原始文件或旧版本备份。

不要做的事

  • 不要相信“百分百找回”的付费服务,没有人能对 AES-256 做出这种承诺。
  • 不要把含敏感数据的压缩包上传到来源不明的网站。
  • 不要为了“试试看”而运行所谓的破解工具,这类程序本身就是常见的安全风险。

如果是自己打包、只是记不清当时用的哪个口令,可以按时间顺序回忆常用组合,并优先尝试近期使用过的口令。若压缩包开启了文件名加密,连里面有什么都无法确认,这时更应以“重新获取原始文件”为主要方向。

口令与传递建议

加密的薄弱环节通常不是算法,而是口令和传递方式。

  • 长度优先于复杂度:足够长的多词组合,比 8 位随机字符更容易记也更难猜。
  • 一个压缩包一个口令,不要复用邮箱或网盘的登录密码。
  • 口令与压缩包分渠道传递:压缩包走网盘,口令用另一条通道告知。
  • 长期归档时记录口令的存放位置,并确保该位置本身受保护。
  • 对外分发时,附上 SHA-256 校验值,让接收方确认文件未被替换。

常见问题

7z 的密码是哪种加密?强度如何?

7z 格式使用 AES-256 加密,密钥由口令经 SHA-256 派生,并通过较多迭代次数提高穷举成本。加密强度取决于口令本身:同一算法下,短口令或常见口令仍然容易被猜出。

加密文件名和只加密内容有什么区别?

只加密内容时,任何人都能列出压缩包内的文件名、大小与目录结构,只是打不开文件;勾选“加密文件名”(-mhe=on)后,没有密码连列表都看不到。涉及敏感项目名、客户名时应当开启。

压缩包设了密码,怎么取消?

7-Zip 不支持在原压缩包上直接去除密码。需要先用密码解压,再重新压缩一个不带密码的包。重新压缩时注意别再勾选密码框,并确认旧文件已按需删除。

忘记 7z 密码还能打开吗?

不能通过“破解功能”打开。7-Zip 没有后门或恢复接口,唯一途径是按口令空间逐个尝试。成功率取决于口令长度、字符集与是否属于常见口令;AES-256 加密下没有捷径。

网上说能恢复 7z 密码的服务可信吗?

多数是字典或暴力尝试,与自己在本地跑工具的原理相同,只是算力更强。没有任何服务能保证成功,也不应把压缩包交给不可信的第三方。涉及敏感数据时,更稳妥的做法是回到原始文件重新打包。

密码里能用中文吗?会不会乱码?

可以输入中文,但跨平台传递时容易出现编码不一致。建议密码使用 ASCII 字符,或至少在发出前用接收方环境实测一次。密码区分大小写,粘贴时注意首尾空格与全角字符。