DevelNext — Активация программы через сервер с привязкой к железу

Программа передаёт ключ и id железа, на их основе сервер генерирует уникальный файл лицензии для каждого ПК. В последующие запуски активация через Интернет не требуется, т.к. данные об активации хранятся в лицензионном файле. В демо я сделал id железа = хэш sha-1 от uuid и id мат.платы, поэтому никакие личные данные никуда не утекут. Можно не вешать ssl на сервер, вряд ли что-то можно будет сделать, даже перехватив данные.

Описание алгоритма

Серверная часть

Скачать "DevelNext Activation Server" Загрузок: 425

Клиент

Скачать "DevelNext Actvation Client" Загрузок: 445

Инструкция по установке

1. Установка на сервер
1.1 Скачать и распаковать скрипты для сервера
1.2 Создать базу данных SQL, сделать импорт файла dn.sql
1.3 Отредактировать файл config.php: указать логин/пароль для авторизации, параметры для подключения к MySQL, придумать секретный ключ, которым будет подписываться файл лицензии, его нужно будет прописать в программе-клиенте (далее).

2. Конфигурация клиента
2.1 Скачиваем проект с программой клиентом, открываем модуль Activation

2.2 В модуле указываем секретный ключ (такой же, как в конфигурации сервера из п.1.3), URL сервера, где установлен скрипт авторизации.
2.3 Для работы к проекту необходимо подключить пакет Windows
2.4 Обязательно отметьте галочку компилировать в байт-код, иначе смысла от такой активации не будет

Активация демо проекта настроена на этот сервер

Админка демо проекта

Добавить комментарий

Ваш e-mail не будет опубликован.

  1. Аноним:

    Блин это же гениально как я до этого не мог додуматься
    и знаешь что ты крутой кодер или как вас там завут

  2. DraonKHacks:

    Что такое ‘Авторизационные данные’ в config.php к чему они?

  3. Аноним:

    При заходе на сайт вылазит это:
    ‘Новый ключ добавлен!’, ‘keyDeleted’ => ‘Ключ удалён’, ‘keyEdited’ => ‘Ключ изменён’, ]; if(isset($messages[$_GET[‘message’]])){ ?>
    Как исправить?

  4. RenX:

    Система очень уязвима. Смотри…. когда из базы удалить ключ и отмотать время на компе (клиенте) , то можно пользоваться программой сколько захочешь (отматывая время) при условии что нет ключа. И просто без удаления ключа из базы данных, можно отмотать время назад и юзать прогу сколько угодно. Т.к программа обращается к серверу когда лицензия закончится( а время она берет не из сервера а из компа-клиента).
    Т.е в базе данных время истекло, а на компе-клиенте нет, и юзай прогу сколько влезет отматывая время.

  5. Аноним:

    При нажатии на «Получить лицензию» выдаёт ошибку Fatal error: Uncaught Error: Cannot call ‘getTime’ method of non-object in res://app/modules/Activation.php on line 57, position 105

    • Nikl:

      Я заметил что эта ошибка зависит от того имеется ли какая-нибудь надпись в окне ввода при стартовом запуске программы если да то начинает выдавать такую ошибку но если окно ввода пусто при первом запуске то все нормально. Причем окно запуска нужно сделать пустым еще до сборки программы в devel…

  6. Аноним:

    Parse error: syntax error, unexpected ‘[‘ in /var/www/u0314106/data/www/mushroomeater.pw/license/index.php on line 18

  7. Аноним:

    Спасибо, отличный исходник, пригодится!