擅长:python、mysql、java
<p>这只是一个有限的一级混淆解决方案,但它是内置的:Python有一个字节码编译器:</p>
<pre><code>python -OO -m py_compile <your program.py>
</code></pre>
<p>生成包含字节码的<code>.pyo</code>文件,以及删除docstring的位置等。您可以使用<code>.py</code>扩展名重命名<code>.pyo</code>文件,并且<code>python <your program.py></code>的运行方式与程序类似,但不包含源代码。</p>
<p><strong>PS</strong>:您得到的“有限”级别的混淆可以恢复代码(使用一些变量名,但不使用注释和docstring)。请参阅第一条注释,了解如何执行此操作。然而,在某些情况下,这种程度的混淆可能被认为是足够的。</p>
<p><strong>PPS</strong>:如果您的程序导入的模块像这样模糊不清,那么您需要用<code>.pyc</code>后缀重命名它们(我不确定这不会有一天中断),或者您可以使用<code>.pyo</code>并用<code>python -O ….pyo</code>运行它们(导入应该可以工作)。这将允许Python查找模块(否则,Python将查找<code>.py</code>模块)。</p>