我写了一个自动化程序,它登录到一个网站来执行某项任务。 .py文件将提供给许多用户,但我不希望他们能够读取代码并查看用于登录的密码。如何确保他们只能执行文件但不能读取它?
答案 0 :(得分:1)
你不能这样做。如果您为用户提供密码,无论您尝试隐藏多少密码,都可以找到它。
您可以通过加密和混淆来查找更加困难,但这只会阻止非技术娴熟的用户。那些用户可能不会想到通过一堆代码来阅读明文密码。
正确的方法是使用户可以知道自己的密码。让服务器端阻止人们做他们不应该做的事情(如果你没有,你需要制作一个)。为每个用户使用单独的帐户,以便您可以根据需要单独停用它们。
答案 1 :(得分:1)
要锁定Python脚本以使其无法进行编辑,请将PY文件编译为PYC文件。这样可以确保用户无法对脚本中的现有代码进行任何更改。 PYC文件本质上是二进制文件,无法直接读取。下面是将PY文件编译成PYC文件的代码:
import py_compile
script = "C:\\temp\\myscript.py"
py_compile.compile(script)
该代码将生成myscript.pyc。即使不存在PY文件,PYC文件也会运行。
答案 2 :(得分:0)
这是不可能的。 Python文件只是一个文本文件;执行它,你需要能够阅读它。
在这些情况下的一个好习惯是使用环境变量(参见here的例子)。您可以在计算机上设置一个不属于Python文件的环境变量,然后使用
在代码中访问它。import os
password = os.environ['NAME_OF_YOUR_ENV_VAR']
答案 3 :(得分:0)
一种可能性是运行一个保存密码的守护进程(服务)。这将在已应用正常安全性的受限用户下运行。用户不应该能够访问守护程序用户下的任何内容。
用户有一个python程序,它通过IPC机制向登录程序传递登录请求,你可以使用套接字,命名管道等。守护程序代表用户执行任务并传回结果。 / p>
实际程度取决于用户与服务器之间的通信量。如果这是一个交互式任务,就会出现性能问题。
守护进程可能必须是多线程的,具体取决于卷,因此这可能需要做很多工作。
类似的可能性是守护进程可以是Web服务器(例如使用Apache),然后用户使用浏览器进行访问。这可能更容易编程和维护,但如果可行的话,这取决于您的环境。
答案 4 :(得分:0)
最好的方法是@cdarke提供,但更快的方法是将.py文件存储在隐藏的受密码保护的文件夹中。