查看完整版本: [Linux教程]解压密码不正确怎么办

repksm 发表于 2023-4-7 09:02:45

[Linux教程]解压密码不正确怎么办

本帖最后由 repksm 于 2025-5-14 17:15 编辑

本文假设你了解基本的Linux操作, 仅讲解思路、原理和大致方案,并非面向大多数普通电脑用户!

问题


如果你从本站下载了一个zip压缩包, 解压时明明输入了正确的密码, 但提示密码不正确.

问题的原因


这可能是因为, 有些国产压缩软件会使用奇怪的文字编码来加密压缩包. 例如同样是"老王论坛"这四个字, 使用不同的编码就会得到不同的二进制表示, 进而导致压缩包的实际密码不同.

如何解决这个问题

或许有一些专用软件可以帮助你, 但我在这里只是想要分享一个自己常用的方案. 如果你是Linux用户或WSL用户, 或者你知道如何使用Linux/WSL, 你可以尝试一下.

1. 安装unzip和iconv
2. 修改这个bash脚本里的文件名和密码并运行它, 它会帮助你自动尝试几乎所有的中文编码. 它总能解决我的问题

# Input in UTF-8
password='你的中文密码'
zip=YourEncryptedFile.zip

target_codes=(
    UTF-8 UTF-16 UTF-16BE UTF-16LE ISO-8859-1 ISO-2022-JP ISO-2022-CN SHIFT-JIS EUC-CN EUC-JP EUC-JP-MS EUCJP BIG5 CN CN-GB CN-BIG5 GB2312 GB18030 GBK EUC-KR ISO-2022-KR JOHAB
)

for target in "${target_codes[@]}"; do
    echo TRYING $target
    unzip -P $(printf "$password" | iconv -f UTF-8 -t $target) "$zip" && break
done




repksm 发表于 2024-4-28 17:16:04

根据我的使用经验,此脚本有时仍然会遇到重新编码后的字符被shell重新解释的问题。这种情形可以使用python脚本,这个回答已经给出了解决方案(两个不同的回答分别针对traditional zip encryption和新的AES encryption),把编码改成gb2312等再尝试即可。
https://superuser.com/questions/1676282/how-to-decompress-an-encrypted-zip-file-with-ansi-encoded-password/1809355#1809355

lihao182 发表于 2024-9-7 16:54:02

repksm 发表于 2024-4-28 17:16
根据我的使用经验,此脚本有时仍然会遇到重新编码后的字符被shell重新解释的问题。这种情形可以使用python ...

不会使用怎么办,还有其他办法吗,解压都是密码错误,下载了也没用
页: [1]
查看完整版本: [Linux教程]解压密码不正确怎么办