Приложения Python: можно ли защитить код так или иначе?

Вот еще одна альтернатива, использующая shift

val <- 5L
DT[, xx := as.integer(
        Reduce(`|`, c(shift(y==val, 0L:2L, fill=FALSE), shift(y==val, 1L:2L, FALSE, "lead")))
    ),
    by=.(grp)]
DT

Включая комментарий Jaap, используя data.table version> = 1.12.0, код сокращается до вывода

DT[, xx := +(Reduce(`|`, shift(y==v, -2L:2L, FALSE))), by=grp]

:

    grp  y exclude xx
 1:   a  1       0  1
 2:   a  5       0  1
 3:   a  3       0  1
 4:   a  4       1  1
 5:   a  5       0  1
 6:   a  7       1  1
 7:   a  8       0  1
 8:   a  9       0  0
 9:   a 10       0  0
10:   b  1       0  0
11:   b  2       0  0
12:   b  3       0  1
13:   b  4       1  1
14:   b  5       0  1
15:   b  6       1  1
16:   b  7       1  1
17:   b  8       0  0
18:   b  9       0  0
19:   b 10       0  0
20:   c  5       1  1
21:   d  1       0  0
    grp  y exclude xx
7
задан Eddie Parker 24 January 2009 в 16:07
поделиться

5 ответов

Безопасность через мрак никогда не работает. Если необходимо использовать собственную лицензию, осуществите ее через закон, не непродуманные попытки путаницы.

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

13
ответ дан 6 December 2019 в 06:04
поделиться

py2exe

На окнах py2exe один способ поставить код конечным пользователям, py2exe связывает интерпретатор Python, необходимый dlls и Ваш код, скомпилированный в байт-код Python.

Вот инструкции по байт-коду Python получить некоторую подсказку, на что это похоже:

http://www.python.org/doc/2.5.2/lib/bytecodes.html

Или можно использовать скидку для разборки некоторых pyc/pyo файлов.

Так, использование py2exe подобно распределению скомпилированного Python (pyc/pyo) файлы.

Shedskin компилятор C++

Компилятор Shedskin компилирует подмножество Python к C++, который можно скомпилировать в собственный код с помощью любого компилятора.

pypy

Я не знаю о PyPy слишком много. Согласно их документам Pypy может сгенерировать код C.

1
ответ дан 6 December 2019 в 06:04
поделиться

Слово, которое Вы ищете, запутывают. Быстрый Google показывает:

http://www.lysator.liu.se/~astrand/projects/pyobfuscate/

но:

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

b) Также возможно получить прибыль от приложений с открытым исходным кодом, если Вы умны об этом.

c) Если Вы хотите, чтобы Ваша Интеллектуальная собственность была действительно безопасна, то единственный ответ не должен позволять никому иметь ее во-первых: Запишите свое приложение как веб-приложение, (я рекомендую использовать django), и только у Вашего поставщика веб-хостинга есть доступ к Вашему коду.

3
ответ дан 6 December 2019 в 06:04
поделиться

Поставляя коммерческое настольное приложение Mac в Python, мы делаем точно, как описано в других ответах; защитите себя согласно закону с достойным EULA, не путем запутывания.

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

5
ответ дан 6 December 2019 в 06:04
поделиться

Даже если Вы используете скомпилированный язык как C# или Java, люди могут выполнить инженерный анализ, если они мотивированы и технически компетентные. Путаница не является надежной защитой от этого.

Можно добавить запрет на инженерный анализ к лицензионному соглашению для конечного пользователя для программного обеспечения. Большинство частных компаний делает это. Но это не предотвращает нарушение, оно только дает Вам обращение в суд.

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

Пример: Slashdot на самом деле делает их код для их веб-сайта доступным. Это вредит их способности выполнить их веб-сайт? Нет.

Другое средство состоит в том, чтобы установить Вашу стандартную цену, таким образом, что усилие пирату Ваш код является более дорогостоящим, чем простая покупка законных лицензий для использования продукта. Joel Spolsky предоставил рекомендацию этому, производит в его статьях и подкастах.

8
ответ дан 6 December 2019 в 06:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: