解压使用 CJK 字符密码加密的非 UTF-8 编码 ZIP 归档文件

date
Aug 20, 2023
slug
unzip-non-utf8-encoding-cjk-password-encrypted-zip
status
Published
tags
Windows
ZIP
片段
summary
由于历史问题, 早期 zip 并不支持 cp936 以外的编码. 即使后来添加了对 UTF-8 的支持, 大部分软件也都不遵守规范, 不仅如此甚至还随意使用 cp936 和 UTF-8 之外的编码应用在 zip 归档上. 即使部分解压缩软件支持在浏览和解压时设置名称编码, 但都不支持设置归档文件的密码的编码, 导致使用不规范的编码密码加密的 zip 归档文件无法在其他编码环境下正确验证密码.
type
Post
url
由于历史问题, 早期 zip 并不支持 cp936 以外的编码. 即使后来添加了对 UTF-8 的支持, 大部分软件也都不遵守规范, 不仅如此甚至还随意使用 cp936 和 UTF-8 之外的编码应用在 zip 归档上. 即使部分解压缩软件支持在浏览和解压时设置名称编码, 但都不支持设置归档文件的密码的编码, 导致使用不规范的编码密码加密的 zip 归档文件无法在其他编码环境下正确验证密码.

UnZip for non-UTF8 encoding

环境要求: Python
  1. 使用 pip 安装模块:
    1. pip install unzipmbcs
  1. 使用模块指定编码解压归档文件:
    1. unzipmbcs.exe x ./path-to.zip ` #归档文件路径 -p 密码 ` -e gbk # 指定编码
      可用的编码:
      • 韩文(Korean): cp949, euc-kr
      • 日文(Japanese): sjis (shift_jis), cp932, euc-jp
      • 中文(Chinese): gbk, gb18030, gb2312, cp936, hkscs, big5, cp950

相关文章


© CXPLAY 2024