如何从受密码保护的 zip 运行 python 脚本

How to run a python script from a password protected zip

提问人:FuzzkingCool 提问时间:5/4/2015 更新时间:8/21/2018 访问量:4014

问:

我知道 python 模块/脚本可以从 zip 存档中运行,如下所述:https://www.python.org/dev/peps/pep-0441/https://blogs.gnome.org/jamesh/2012/05/21/python-zip-files/

但我的问题是:

是否可以对这个存档或 .pyz 文件进行密码保护,并使用另一个小的 python 脚本运行它,该脚本将发送密码,然后运行 ?__main__.py

谢谢!

python zip 混淆密码 保护 pyz

评论


答:

3赞 GHugo 5/4/2015 #1

管理导入的代码位于模块内部。 读取存档是在函数 getdata 中完成的,它假设文件通过解压缩是未加密的(请参阅此处)。zipimport

所以不,不幸的是,似乎不可能直接从命令行使用加密文件。但是,您可以想象一个使用 importlib示例)执行此操作的包装器。

3赞 Dakkaron 8/21/2018 #2

我自己需要这样的东西,所以我做到了。您需要在此处找到的模块:https://github.com/Dakkaron/ArchiveImporter

然后你可以像这样使用它:

python ArchiveImporter.py [zipfile] [-p=password] [args...]

适用于 Python2 和 Python3。

该模块也可以在代码中使用:

# First import the ArchiveImporter module
import ArchiveImporter
# Then add the password encrypted file you want to import from using addZip(zippath, password)
ArchiveImporter.addZip("test.pyz", "password")
# Now import modules from the archive as usual
import testmod