我知道解密是一个广阔的世界,我是这方面的新手,但我有一个WinZip文件,我可以通过WinZip UI轻松地用已知密码在WinZip中打开
但是,由于提供了相同的密码,我无法在Python中打开它。我怀疑编码可能在AES中,但我不想使用非本机库来打开文件。是否有任何标准可以在Python中打开受密码保护的WinZip文件?我在ZipFile中尝试了不同的编码解码器
from zipfile import ZipFile
with ZipFile(r'C:\Users\user\Desktop\Data.zip') as zf:
pas = 'myPass'
res = pas.encode('utf-32-le')
zf.extractall(pwd=res)
zf
RuntimeError: Bad password for file ...
首先需要确定zip文件使用的加密类型。WinZip本身可能有一个报告工具可以告诉您。我没有,所以不知道
如果您可以访问任何命令行zip实用程序,您可以很容易地找到它们
首先,如果有可用的
unzip
的Infozip实现,请使用-lv
选项运行它。如果您有一个非常新版本的unzip
可用,并且它在方法列中显示AES_WG
,那么您的文件是AES加密的如果
unzip
较旧,则Method列中的字符串Unk:099
表示您的文件是AES加密的另一种选择是使用zipdetails(完全公开,我是zipdetails的作者)。要查找的关键内容是行
Compression Method 0063 'AES Encryption'
如果您确实有AES加密,并且需要python方式读取文件,那么标准的
zipfile
方法将无法工作。目前zipfile
只支持弱加密有关读取AES加密Zip文件的其他python方法,请参见Python unzip AES-128 encrypted file
在不编码的情况下正常传递密码可能会起作用
相关问题 更多 >
编程相关推荐