python - 保护 python 应用程序
问题描述
我正在使用 mongoDB( pymongo
),其中将 python 源(程序的逻辑)存储为 b64 字符串。
给出有效密钥后,我获取 b64 字符串并对其进行解码。
例子:
data : "cHJpbnQoImhlbGxvIHdvcmxkIik="
data : "print("hello world")"
如何import
将获取的 source( data
) 提取到现有的 python 文件中,而不将其本地存储在文件中以使用它的功能?
编辑:
是在mongodb
服务器上。Python 程序从服务器获取具有给定密钥的数据集。
base64.b64decode(data.find_one({ "key": "derp"})['data'])
=>data = print("hello world")
上面的命令是从main.py
. 要“正常工作”/使用某些程序功能,data (logic.py)
必须将 注入main.py
,以便 main.py 可以使用它的功能等。
逻辑.py
def sayHello():
print("hello world")
主文件
def doRegisterStuff():
[...]
#worked
import logic #import the decoded base64 string to use its function
logic.sayHello()
解决方案
解决方案
exec正是我所需要的。
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
exec(base64.b64decode(ex.licenses.find_one({ "key": "derp"})['data']))
sayHello()
推荐阅读
- c++ - 打印整个数组而不是子集
- javascript - JavaScript - node.parentElement 是否被视为 DOM 访问?
- python - 使用具有多个标签的 Pandas 将 XML 转换为 CSV
- json - PowerShell ConvertFrom-Json 未将 JSON 列表转换为 Json 对象
- mysql - 如何在 Grails 4 域类中指定连接表的名称和列?
- html - HTML:延迟加载时不考虑图像属性宽度/高度
- java - Groovy Spock - 模拟方法未返回所需值
- c - 为什么我们不能在非指针上使用 *?
- java - 如何将 JsonPath 值与 MockMvc 中的标头进行比较?
- video - Can a default statusCallback be set for Twilio subaccounts via API?