如何使用 zipfile 模块创建受密码保护的 zip 文件
How to create a password protected zipfile using the zipfile module
我有一个名为 important.zip
的受密码保护的 zip 文件,它包含 1 个文件夹,zip 文件的密码是 123,但是当我使用 运行 此代码时密码错误文件夹还在解压中,如何设置密码不正确无法解压?
import zipfile
zFile=zipfile.ZipFile("important.zip")
try:
zFile.extractall(pwd="oranges")
except Exception as e:
print e
zipfile 模块会对此进行检查,并会在密码不匹配时 returns 和 'Bad password for file' 进行检查。
但它是在每个文件的基础上执行此操作的。由于 ZIP 文件中的每个文件都可以有自己不同的密码,这是将文件添加到存档时给出的密码。
我认为您的 zip 文件没有密码保护,因为 zipfile 在提取没有密码保护的文件时接受密码。由于文件未受密码保护而未使用密码时不报错。
为避免在提供密码时提取不受密码保护的 zip 文件,请检查文件是否受密码保护:
import zipfile
def all_files_are_password_protected(zf):
return all(zinfo.flag_bits & 0x1 for zinfo in zf.infolist())
zFile=zipfile.ZipFile("important.zip")
try:
if all_files_are_password_protected(zFile):
zFile.extractall(pwd="oranges")
except Exception as e:
import traceback
traceback.print_exc()
基于:
zf = zipfile.ZipFile(archive_name)
for zinfo in zf.infolist():
is_encrypted = zinfo.flag_bits & 0x1
if is_encrypted:
print '%s is encrypted!' % zinfo.filename
来自How to check if a zip file is encrypted using python's standard library zipfile?
请注意,每个文件都有自己的密码,因此如果使用不同的密码加密,某些文件可能无法提取。
我有一个名为 important.zip
的受密码保护的 zip 文件,它包含 1 个文件夹,zip 文件的密码是 123,但是当我使用 运行 此代码时密码错误文件夹还在解压中,如何设置密码不正确无法解压?
import zipfile
zFile=zipfile.ZipFile("important.zip")
try:
zFile.extractall(pwd="oranges")
except Exception as e:
print e
zipfile 模块会对此进行检查,并会在密码不匹配时 returns 和 'Bad password for file' 进行检查。
但它是在每个文件的基础上执行此操作的。由于 ZIP 文件中的每个文件都可以有自己不同的密码,这是将文件添加到存档时给出的密码。
我认为您的 zip 文件没有密码保护,因为 zipfile 在提取没有密码保护的文件时接受密码。由于文件未受密码保护而未使用密码时不报错。
为避免在提供密码时提取不受密码保护的 zip 文件,请检查文件是否受密码保护:
import zipfile
def all_files_are_password_protected(zf):
return all(zinfo.flag_bits & 0x1 for zinfo in zf.infolist())
zFile=zipfile.ZipFile("important.zip")
try:
if all_files_are_password_protected(zFile):
zFile.extractall(pwd="oranges")
except Exception as e:
import traceback
traceback.print_exc()
基于:
zf = zipfile.ZipFile(archive_name)
for zinfo in zf.infolist():
is_encrypted = zinfo.flag_bits & 0x1
if is_encrypted:
print '%s is encrypted!' % zinfo.filename
来自How to check if a zip file is encrypted using python's standard library zipfile?
请注意,每个文件都有自己的密码,因此如果使用不同的密码加密,某些文件可能无法提取。