Защита приложения Python - PullRequest
       46

Защита приложения Python

0 голосов
/ 16 ноября 2018

Я использую mongoDB (pymongo), где у меня есть источник python (логика программы), хранящийся в виде строки b64.

После предоставления правильного ключа я получаю строку b64 идекодировать его.


Пример:

data : "cHJpbnQoImhlbGxvIHdvcmxkIik="

data : "print("hello world")"

Как я могу import извлеченный источник (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 мог использовать его функции и т. Д.

logic.py

def sayHello():
  print("hello world")

main.py

    def doRegisterStuff():
    [...]
#worked
import logic #import the decoded base64 string to use its function
    logic.sayHello()

1 Ответ

0 голосов
/ 16 ноября 2018

Решение

exec - это именно то, что мне нужно.

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