Можно ли минимизировать код Python, как JavaScript? - PullRequest
0 голосов
/ 08 сентября 2018

Python - это язык сценариев. Трудно защитить код Python от копирования. Не требуется 100% защита, но, по крайней мере, замедлите действия тех, у кого плохие намерения. Можно ли минимизировать / убрать код Python так, как сегодня выполняется интерфейсный код javascript?

РЕДАКТИРОВАТЬ: код Python будет использоваться в Raspberry Pi, а не на сервере. На Raspberry Pi любой может вынуть SD-карту и получить доступ к коду Python.

Ответы [ 4 ]

0 голосов
/ 08 сентября 2018
  1. Как насчет того, чтобы начать с распространения только файлов pyc?Это файлы, созданные интерпретатором Python по соображениям производительности - их время загрузки быстрее, чем .pys, - но для обычного пользователя их сложно расшифровать.

python -m compileall .

Увеличьте безопасность, используя Cython для компиляции вашего python src.Чтобы «цитонизировать» ваш код, запустите Cython + GCC для каждого модуля.Файлы init .py должны быть оставлены без изменений, чтобы импорт модуля работал.Глупый пример Hello world:

$ cython helloworld.py -o helloworld.c $ gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing -I/usr/include/python3.7 -o helloworld.so helloworld.c

YMMV с использованием этого подхода;Я сталкивался с различными проблемами, используя разные модули.

0 голосов
/ 08 сентября 2018

Python выполняется на стороне сервера. в то время как иногда забавно намеренно запутывать код (посмотрите на запутывание perl;), он никогда не должен быть необходим для серверного кода.

если вы пытаетесь скрыть свой питон от кого-то, но у него уже есть доступ к каталогам и файлам, в которых он хранится, у вас есть большие проблемы, чем запутывание кода.

0 голосов
/ 08 сентября 2018

Я отвечу на свой вопрос.

Я нашел следующие программные инструменты, которые могут сделать эту работу. Я не пробовал их, поэтому я не могу комментировать, насколько они эффективны. Приветствуются комментарии об их эффективности.

https://liftoff.github.io/pyminifier/

https://mnfy.readthedocs.io/en/latest/

0 голосов
/ 08 сентября 2018

Конечно, вы можете это уточнить, но учитывая тот факт, что python использует отступы для синтаксиса, вы не можете выполнить эквивалентное минимизацию (которая в JS в значительной степени зависит от удаления всех пробелов).

Кроме того, JS минимизирован, чтобы ускорить его загрузку, а не запутывать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...