首页 > 解决方案 > 保护 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()

标签: pythonmongodbpython-3.6python-import

解决方案


解决方案

exec正是我所需要的。

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    exec(base64.b64decode(ex.licenses.find_one({ "key": "derp"})['data']))
    sayHello()

推荐阅读