<p>您可以使用<a href="http://docs.python.org/library/base64.html" rel="noreferrer">^{<cd1>} module</a>对字符串进行编码以停止<a href="http://en.wikipedia.org/wiki/Shoulder_surfing_(computer_security)" rel="noreferrer">shoulder surfing</a>,但如果有人可以访问您的文件,则不会停止他们查找您的代码。</p>
<p>然后,您可以使用<a href="http://docs.python.org/library/functions.html#compile" rel="noreferrer">^{<cd2>} function</a>和<a href="http://docs.python.org/py3k/library/functions.html#eval" rel="noreferrer">^{<cd3>} function</a>来执行解码后的代码。</p>
<pre><code>>>> import base64
>>> mycode = "print 'Hello World!'"
>>> secret = base64.b64encode(mycode)
>>> secret
'cHJpbnQgJ2hlbGxvIFdvcmxkICEn'
>>> mydecode = base64.b64decode(secret)
>>> eval(compile(mydecode,'<string>','exec'))
Hello World!
</code></pre>
<p>因此,如果您有30行代码,您可能需要对其进行加密,方法如下:</p>
<pre><code>>>> f = open('myscript.py')
>>> encoded = base64.b64encode(f.read())
</code></pre>
<p>然后,您需要编写第二个脚本来执行<code>compile()</code>和<code>eval()</code>,这两个脚本可能将编码后的脚本作为字符串文字包含在<a href="http://docs.python.org/tutorial/introduction.html#strings" rel="noreferrer">triple quotes</a>中。所以看起来像这样:</p>
<pre><code>import base64
myscript = """IyBUaGlzIGlzIGEgc2FtcGxlIFB5d
GhvbiBzY3JpcHQKcHJpbnQgIkhlbG
xvIiwKcHJpbnQgIldvcmxkISIK"""
eval(compile(base64.b64decode(myscript),'<string>','exec'))
</code></pre>