Я пытаюсь решить, как реализовать очень основное решение для лицензирования для некоторого программного обеспечения, которое я написал. Программное обеспечение будет работать на моих (гипотетических) клиентских компьютерах, при этом идея заключается в том, что программное обеспечение немедленно покинет (с дружеским сообщением), если клиент запускает его на более чем n машинах (n - количество лицензий, которые они купили). Кроме того, клиенты не являются технически подкованными до такой степени, что «базовый» достаточно хорош.Идеи для рудиментарной реализации лицензирования программного обеспечения
Вот мой текущий дизайн, но учитывая, что я практически не имею опыта в этой теме, я хотел бы спросить SO, прежде чем я начал любое развитие на нем:
- Удаленный сервер хозяйничает базу данных MySQL с таблица, содержащая два столбца: клиентский ключ и количество лицензий
- Клиентское приложение подключается к базе данных MySQL при запуске, предлагая клиенту-ключ, который я поместил в файл свойств, упакованный в дистрибутив (я бы создал новый дистрибутив для каждого нового клиента)
- Скорее всего, мне понадобится вторая таблица для хранения va истории событий, так что с некоторой короткой логикой программное обеспечение может решить, может ли он работать на данной машине (возможно, скользящее окно из n машин с использованием программного обеспечения в течение 24 часов)
- Если программное обеспечение не может установить соединение с MySQL или решает, что это за n разрешенных машин в день, он закрывается
- Информация о подключении удаленного сервера, на котором размещена база данных MySQL, должна быть жестко закодирована в приложении? (Это похоже на плохую идею, но в противном случае они могли бы указать ее на какой-то другой сервер, всегда проверяемый на успех)
Я думаю, что об обложках моего первоначального дизайна. Цель состоит в том, что, хотя это, безусловно, не является полным доказательством, я думаю, что я сделал это, по крайней мере, несколько сложно, чтобы создать легкорастворимое решение для взлома. Кроме того, я могу легко настроить количество лицензий для данной пары клиент/ключ.
Мне нужно, чтобы это было сделано миллион раз раньше, так что расскажите мне о лучшем решении, которое так же просто реализовать и обеспечивает тот же (низкий) уровень безопасности. В случае использования внешних библиотек я предпочитаю Java, так как это то, что было написано в программном обеспечении.
Я думаю, вы убедили меня заставить наш проект принять решение о не лицензировании или оплате решения стороннего поставщика. Спасибо за совет! – Ross