Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Zipfile方法不适用于';t工作_Python_Python 3.x_Zipfile - Fatal编程技术网

Python Zipfile方法不适用于';t工作

Python Zipfile方法不适用于';t工作,python,python-3.x,zipfile,Python,Python 3.x,Zipfile,我用rockyou密码创建了一个zip文件,并尝试提取所有文件。但我有一些问题。无论我如何输入密码,我都会得到: ('Bad password for file', <zipfile.ZipInfo object at 0x7f7928d14dc8>) 如果我传递一个字符串,我会遇到另一个问题: TypeError: pwd: expected bytes, got <class 'str'> 以及: 以及: 有人帮忙吗?嗯,我找到了一种方法来解决这个问题,对我来说很

我用
rockyou
密码创建了一个zip文件,并尝试提取所有文件。但我有一些问题。无论我如何输入密码,我都会得到:

('Bad password for file', <zipfile.ZipInfo object at 0x7f7928d14dc8>)
如果我传递一个字符串,我会遇到另一个问题:

TypeError: pwd: expected bytes, got <class 'str'>
以及:

以及:


有人帮忙吗?

嗯,我找到了一种方法来解决这个问题,对我来说很有效,但可能不太漂亮

  zFile.extractall(pwd = 'PASSWORD'.encode('cp850','replace'))

我一直在阅读《暴力python》一书,在第一章中,您制作了一个迷你脚本来解锁加密的zip文件。对我来说,有效的方法是添加a
b
,使字符串以字节为单位:

import zipfile
zFile = zipfile.ZipFile("evil.zip")
zFile.extractall(pwd=b'secret') #this is what i'm talking about

为什么要转换为字节?为什么不作为字符串传递呢?另外,不要使用
pass
,因为它是一个保留字。请确认您可以使用该密码,使用标准的zip程序打开该文件。您是否看到过一个难看的(但功能性的)解决方案是:
os.system('7z e-y-p“password”filename.zip')
导入
os
后,如上所述,看起来这是zipfiles加密之间的兼容性问题,因此如果使用AES-256加密文件,将出现错误。我不知道是否已修复,但正确的方法是在pwd param中传递字节,并使用zipcrypto加密模式对文件进行加密。谢谢您,我们得到了
TypeError:pwd:expected bytes,得到了

pss = bytes(str.encode("rockyou"))
pss = bytes("rockyou".encode("UTF-8"))
  zFile.extractall(pwd = 'PASSWORD'.encode('cp850','replace'))
import zipfile
zFile = zipfile.ZipFile("evil.zip")
zFile.extractall(pwd=b'secret') #this is what i'm talking about