当前位置: 首页 > 面试题库 >

如何有效地混淆Python代码?

齐乐
2023-03-14
问题内容

我正在寻找如何隐藏我的Python源代码。

print "Hello World!" 

如何编码此示例,以使它不易阅读?有人告诉我使用base64,但不知道如何使用。


问题答案:

这只是一个有限的第一层混淆解决方案,但是它是内置的:Python有一个编译器来对字节码进行编码:

python -OO -m py_compile <your program.py>

生成一个.pyo包含字节码的文件,并删除其中的文档字符串,等等。您可以.pyo使用.py扩展名重命名该文件,并且python <your program.py>可以像程序一样运行,但不包含源代码。

PS:您获得的“有限”混淆级别使得人们可以恢复代码(带有一些变量名,但没有注释和文档字符串)。有关如何操作,请参见第一个评论。但是,在某些情况下,这种混淆程度可能被认为足够。

PPS:如果您的程序导入的模块像这样混淆,那么您需要使用.pyc后缀来重命名它们(我不确定这一天不会中断),或者您可以使用.pyo和一起运行它们python -O ….pyo(导入应该工作)。这将允许Python查找您的模块(否则,Python将寻找.py模块)。



 类似资料:
  • 问题内容: 如何快速混淆代码。我有一个非常小的 Java App ,我想将混淆的代码交付给客户端。我听说过很多有关 ProGuard 混淆代码并下载的信息,但不知道如何混淆我的“ abc.jar”文件。 我检查了它的网站,但其中包含许多要阅读的材料。我不需要沉迷。我只需要简单地将变量,方法和类的名称更改为一些不可读的名称即可。我知道ProGuard还提供所有其他功能。 Q1。 因此,谁能告诉我一些

  • 我已经混淆了我的apk,但文件大小只从12MB减少到10.5MB。 这只是一个相对较小的减少的原因可能是因为我的应用程序使用了几个大型库,但有没有任何方法,我可以检查已执行的模糊级别? 以防万一,这是我的proguard-project.txt文件... ...我使用的库是、和。

  • 我有PHP(以及其他一些东西)的背景,我正在玩Python。在PHP中,当我想包含另一个文件时,我只需执行或,该文件中的所有内容都包含在内。 但是在python中,推荐的方法似乎是从文件导入,但这似乎更适合包含库和东西?如何在多个文件中分离代码?唯一的方法是使用一个包含一大堆函数调用的文件,然后导入15个其他文件吗?

  • 我有一个类,它有一个接口。 另一个类将使用此接口 但在我把界面弄糊涂后,它就不工作了。我的Proguard:

  • 问题内容: 我试图从不同的部分组成URL,并且在理解此方法的行为时遇到了麻烦。例如: Python 3.x 您能否解释这种方法的确切行为? 问题答案: (对我而言)最好的方式是第一个参数,就像您在浏览器中所在的页面一样。第二个参数是该页面上锚点的href。结果是您单击后将定向到的最终URL。 根据我的描述,这很有意义。尽管希望基础包括一个方案和领域。 如果您在某个虚拟主机上,并且有一个类似的锚,则

  • 问题内容: 我想制作一个不是开源的JavaScript应用程序,因此我想学习如何混淆我的JS代码?这可能吗? 问题答案: 可以使用: Google Closure编译器 UglifyJS 更新:这个问题最初是在10多年前提出的,并且不再维护YUI。 Google Closure编译器仍在使用,并且UglifyJS可以通过节点包管理器在本地运行: 私有字符串数据: 将字符串值设为私有是另一个问题,而