Message 339722 - Python tracker (original) (raw)
Hi, in the short program, that works well for password of 4 character, when I change password length I got this error (parameter MAXD)
Traceback (most recent call last): File "p33.py", line 54, in zf.extractall( pwd=password.encode('cp850','replace')) File "/usr/lib/python3.5/zipfile.py", line 1347, in extractall self.extract(zipinfo, path, pwd) File "/usr/lib/python3.5/zipfile.py", line 1335, in extract return self._extract_member(member, path, pwd) File "/usr/lib/python3.5/zipfile.py", line 1399, in _extract_member shutil.copyfileobj(source, target) File "/usr/lib/python3.5/shutil.py", line 73, in copyfileobj buf = fsrc.read(length) File "/usr/lib/python3.5/zipfile.py", line 844, in read data = self._read1(n) File "/usr/lib/python3.5/zipfile.py", line 934, in _read1 self._update_crc(data) File "/usr/lib/python3.5/zipfile.py", line 862, in _update_crc raise BadZipFile("Bad CRC-32 for file %r" % self.name) zipfile.BadZipFile: Bad CRC-32 for file '11_02_2019.pdf'
program: import string, zipfile, zlib
from zipfile import ZipFile
zf= ZipFile('11_02_2019.pdf.zip')
MAXD=6
upper_case=string.ascii_uppercase uc=list(upper_case)
n=len(uc) print (n)
pos=[] for k in range(0,MAXD): pos.append(0)
print (pos)
for let in range(0,n): print (let, uc[let])
let=0 koniec=0; k3=0 p=0
while koniec != MAXD :
k=0
password=''
for k2 in range(0,MAXD):
password=password+uc[pos[k2]]
print (password)
try:
with zipfile.ZipFile('11_02_2019.pdf.zip') as zf:
zf.extractall( pwd=password.encode('cp850','replace'))
print ("Password found:" + password)
exit(0)
except RuntimeError:
pass
except zlib.error:
pass
#print "ppppppppppppppppppppppppp",p, paswd
pos[0]=pos[0]+1
for k2 in range(0,MAXD-1):
if pos[k2]>=n:
pos[k2]=0
pos[k2+1]=pos[k2+1]+1
koniec=0
for k2 in range(0,MAXD):
if pos[k2] >= n-1:
koniec=koniec+1
Similar behaviuor I observed in older version of python (2.7) and correspondig library.
The zip archive is procted by simple password 'ABCD', the file is not big less tha 1MB.
Best regards Jozef