如何有效混淆Python代码?

新手上路,请多包涵

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

 print "Hello World!"

我如何对这个示例进行编码以使其不可读?有人告诉我使用 base64,但我不确定如何使用。

原文由 str1k3r 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 344
1 个回答

这只是一个有限的一级混淆解决方案,但它是内置的:Python 有一个字节码编译器:

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

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

PS :你得到的“有限”混淆级别是这样的,你可以恢复代码(使用一些变量名,但没有注释和文档字符串)。请参阅第一条评论,了解如何操作。但是,在某些情况下,这种混淆级别可能已足够。

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

原文由 Eric O Lebigot 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏