Включить / отключить доступ к коду через лицензионный ключ - управление версиями приложения - PullRequest
3 голосов
/ 24 июня 2010

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

Любые идеи, ребята ...

1 Ответ

3 голосов
/ 24 июня 2010

Есть много способов сделать это, все они могут быть сломаны, если квалифицированные люди захотят потратить на это время ;-) Однако, в зависимости от выбранного вами решения, это потребует постепенно больше работы с вашей стороны, так что будьтереалистично и выбирайте мудро.

Для действительного лицензионного ключа я настоятельно рекомендую вам сгенерировать его, используя стандартную схему шифрования с открытым и закрытым ключом, такую ​​как rsa.То есть вы создаете текстовую строку лицензионного ключа, которая содержит имя пользователя (чтобы вы могли отслеживать незаконно предоставленные лицензионные ключи) и информацию о том, какой код должен быть активным.Зашифруйте лицензию на своем конце с помощью закрытого ключа и распространите приложение с открытым ключом.Когда приложение запускается, вы читаете лицензионный ключ и расшифровываете его с помощью открытого ключа.Это сделает практически невозможным для людей модифицировать или генерировать поддельные ключи.

Теперь для фактической активации кода вот две опции, которые я использовал в рабочем коде: либо просто включите флаги в лицензионный ключ, говоря, чточасти кода должны быть активными и активировать его, используя базовые операторы if then.В качестве альтернативы, в зависимости от вашего языка программирования, вы можете динамически загружать фрагменты кода из лицензионного ключа, делая эти части кода непригодными для использования без надлежащего файла ключа (я сделал это в java с пользовательским загрузчиком классов) .... однако этоПоследнее решение требует гораздо больше работы, чем первое, поэтому подумайте, прежде чем приступить к разработке своего решения.

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