如何使用Python从zipfile中剥离密码加密
我有一个用例,在这个用例中,我需要对附加到电子邮件的受密码保护的zip文件进行解密,并将其替换为未加密的相同zip文件。到目前为止,我所拥有的:如何使用Python从zipfile中剥离密码加密,python,email,zip,base64,stringio,Python,Email,Zip,Base64,Stringio,我有一个用例,在这个用例中,我需要对附加到电子邮件的受密码保护的zip文件进行解密,并将其替换为未加密的相同zip文件。到目前为止,我所拥有的: import zipfile import StringIO ... if part.get_content_type() == "application/zip": encrypted_string = part.get_payload().decode("base64") encrypted_zip = zipfile.ZipF
import zipfile
import StringIO
...
if part.get_content_type() == "application/zip":
encrypted_string = part.get_payload().decode("base64")
encrypted_zip = zipfile.ZipFile(StringIO(encrypted_string))
encrypted_zip.setpassword("password")
我知道zip文件现在可以像我所做的那样进行解密encrypted\u zip.namelist()
,并且可以正常工作。现在我在var-encrypted_-zip中有了常规的zip,我只想对它进行base64编码,替换当前附件的有效负载,并前进到下一个附件。但是,ZipFile没有“.to_string()”方法,我可以用它来重新编码
我如何做到这一点 您可以创建一个临时存档来删除密码:
import zipfile
import StringIO
path = "dev.zip"
encrypted_zip = zipfile.ZipFile( path )
encrypted_zip.setpassword("pass")
print encrypted_zip.namelist()
with zipfile.ZipFile('spam.zip', 'w') as myzip:
for nested_file in encrypted_zip.namelist():
myzip.write(encrypted_zip.read(nested_file))
脚本将受密码保护的存档“dev.zip”的文件复制到未加密的存档“spam.zip”中。(不要忘记在之后销毁存档)。您可以创建一个临时存档来删除密码:
import zipfile
import StringIO
path = "dev.zip"
encrypted_zip = zipfile.ZipFile( path )
encrypted_zip.setpassword("pass")
print encrypted_zip.namelist()
with zipfile.ZipFile('spam.zip', 'w') as myzip:
for nested_file in encrypted_zip.namelist():
myzip.write(encrypted_zip.read(nested_file))
脚本将受密码保护的存档“dev.zip”的文件复制到未加密的存档“spam.zip”中。(不要忘记在之后销毁存档)。您不需要创建实际的文件;改用。你不需要创建一个实际的文件;请注意,zip文件可以在存档文件之间包含额外的信息——这就是可执行安装程序和(我认为)python鸡蛋的工作方式。如果您复制了这些文件,您将丢失额外的内容。请注意,zip文件可以在存档文件之间包含额外的信息——这就是可执行安装程序和(我认为)python鸡蛋的工作方式。如果您复制了这些文件,您将丢失额外的内容。