2011-07-05 5 views
6

У нас есть критически важная для бизнеса программа, реализованная в Python. Наш босс не хочет, чтобы другие, особенно наши соперники, знали, как он разработан и реализован. Поэтому я должен найти способ зашифровать его. Я сначала подумал о pyc и pyo, но вскоре я обнаружил, что они, вероятно, будут разобраны. Я хочу зашифровать наши исходные коды, но я не знаю, как это сделать? Не могли бы вы, ребята, помочь мне с этим? Любое руководство будет высоко оценено.как зашифровать исходный код python?

+3

Возможный дубликат [Как защитить код python?] (Http://stackoverflow.com/questions/261638/how-do-i-protect-python-code) – mac

+1

Python - это не подходящий инструмент для работы в этом случае.Подумайте о том, чтобы предлагать свое программное обеспечение как услугу (= веб-приложение = вам не нужно распространять свой байт-код, как он будет работать на вашем сервере) – mac

ответ

4

Отдельная конфиденциальная функциональность в функциях C и разработка оберток SWIG. Если вы используете C++, вы можете подумать о повышении уровня python.

14

Я хотел бы предложить вам вернуться в думать об этом, принимая во внимание:

  • Используйте правильный инструмент для работы
  • запутывания трудно
  • Других средств для достижения ваших целей

Во-первых, Python не был предназначен для обфускации. Каждый аспект языка свободен и доступен любому, кто хочет его проверить или изменить. Быть языком байт-кода затрудняет блокировку, а байт-код Python легко понять. Если вы хотите создать что-то, что вы не видите внутри, вам придется использовать другой инструмент.

Во-вторых, все (буквально) в конце концов может быть обращено в обратном порядке, поэтому не предполагайте, что вы сможете полностью защитить любую часть кода. Даже Skype был сломан и проанализирован. Вы должны уметь понимать компромисс между важностью скрытия фрагмента кода (для оценки количества X ресурсов) по сравнению с тем, насколько полезным его скрыть (также с точки зрения усилий). Попробуйте и реалистично оценить, насколько важен ваш «дизайн и реализация», чтобы оправдать все это.

Рассмотрите требования законодательства. Если вы ожидаете, что люди будут злоупотреблять вашим кодом, возможно, было бы более полезно, если бы вы могли легко обнаружить те, которые это делают, и превратить это в юридическую проблему.

4

Все, что может быть изменено с обратной стороны. невозможно, чтобы предоставить информацию о машине пользователя без возможности для просмотра этой информацией. Все, что вы можете сделать, это сделать больше усилий.

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

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

Единственный способ, которым вы можете обойти это, - не давать вашим пользователям этот код, если вы можете запускать свой код на сервере под своим контролем и предоставлять своим пользователям немую программу, которая делает запросы на ваш сервер для настоящая работа.

Смежные вопросы