Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/68: Рейтинг темы: голосов - 68, средняя оценка - 4.78
4 / 2 / 0
Регистрация: 23.02.2014
Сообщений: 133
1

Лицензия программы на ограниченный срок

31.07.2014, 20:39. Показов 12468. Ответов 54
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу сделать лицензию на программу по неделе. Как это лучше всего реализовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.07.2014, 20:39
Ответы с готовыми решениями:

Лицензия программы
Нужно сделать ключ-лицензии. Ключи лежат например на сервере. Расширения файла txt. Пользователь...

Лицензия программы и определенный срок действия
Как можно сделать лицензию для программы ? Там нужно проводить запись в рестре ? Вот к примеру как...

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

Не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия!
Здравствуйте. 1С установлена на сервер терминалов на win 2008 r2. Устанавливалась в режиме...

54
17 / 17 / 32
Регистрация: 17.03.2014
Сообщений: 86
31.07.2014, 21:23 2
Лучший ответ Сообщение было отмечено parka242 как решение

Решение

Я бы зарегистрировал хостинг, создал базу данных куда зносилась дата и время первого запуска, и при последующих запусках сравнивалось с времинем и датой на сервере. Так же необходимо поле для ключа, и булевое поле которое отвечало за активацию программы.
1
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
31.07.2014, 21:36 3
Лучший ответ Сообщение было отмечено parka242 как решение

Решение

parka242,
Делай свой сайт с базой те уже сказали это, забивай заранее значения в программу типа таких-

Номер недели = ключу:
1 = aaaaaa
2 = bbbbbb
3 = ssssss

При запуске программы делай код который считывает с серверов и сравнивает номер недели и ключ и затем при удачном совпадении программа запускается!
Владельцу программы выдавай ключ соответствующий номеру недели!

Как закончатся 48 недель владельцу программы скажеш можеш выкинуть программу!
Хотя можно еще и год приписать в код.

Так же текушую дату (неделю) считывай с сервера для сравнения, иначе на компьютере можно дату откатывать назад будет.
Вобшем тебе это будет нелегко осуществить, сил на такую защиту ты потратиш немало.
0
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
01.08.2014, 05:42 4
Хм, а если нет интернета на ПК или злобные админы сетку закрыли, как тогда?)))) это частая ситуация=)
0
Модератор
9267 / 6045 / 2380
Регистрация: 21.01.2014
Сообщений: 25,812
Записей в блоге: 3
01.08.2014, 07:01 5
Если чисто на одном компе - возможны два варианта, но оба с минусами...
1. Записать в реестр дату первого запуска, как-нибудь зашифровав ее, чтобы враг не догадался и при последующих запусках считывать, дешифровать и сравнивать с текущей. При достижении различия в неделю (к примеру) - выдать сообщение с требованием нового ключа. Если новый ключ введен - все снова по кругу.
Минус: меняешь системную дату - и работаешь, сколько влезет.
2. Считать не дни, а запуски (к примеру, даешь пользователю 30 запусков, потом вводи лицензию еще на сколько-то запусков)
Минус: запустил программу - и работай, не выключая компа и не гася программы, сколько влезет.

Способы бредовые, прошу сильно не пинать, так просто, что первое на ум пришло.
0
Житель Земли
3002 / 3004 / 391
Регистрация: 26.07.2011
Сообщений: 11,463
Записей в блоге: 1
01.08.2014, 09:30 6
Цитата Сообщение от D1973 Посмотреть сообщение
Минус: запустил программу - и работай, не выключая компа и не гася программы, сколько влезет.
3. считать общее время работы программы, независимо от кол-ва запусков. как это делает Alawar
0
Модератор
9267 / 6045 / 2380
Регистрация: 21.01.2014
Сообщений: 25,812
Записей в блоге: 3
01.08.2014, 09:41 7
Ну это таймер должен болтаться постоянно... А так да, верно, конечно.
0
17 / 17 / 32
Регистрация: 17.03.2014
Сообщений: 86
01.08.2014, 18:24 8
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
Номер недели = ключу:
1 = aaaaaa
2 = bbbbbb
3 = ssssss
Зачем?
просто при каждом первом запуске генерировать ключ из рандомных символов (для каждого пользователя свой ключ), а после при регистрации его же и отсылать и при вводе сравнивать

Добавлено через 14 минут
Цитата Сообщение от D1973 Посмотреть сообщение
Записать в реестр дату первого запуска, как-нибудь зашифровав ее, чтобы враг не догадался и при последующих запусках считывать, дешифровать и сравнивать с текущей. При достижении различия в неделю (к примеру) - выдать сообщение с требованием нового ключа. Если новый ключ введен - все снова по кругу.
Тогда ключ придётся заранее забивать, а это не есть хорошо

Добавлено через 3 минуты
Цитата Сообщение от DenNik Посмотреть сообщение
считать общее время работы программы, независимо от кол-ва запусков. как это делает Alawar
как вариант, но задача сделать лицензию на неделю

Добавлено через 10 минут
Цитата Сообщение от Temoxa Посмотреть сообщение
Хм, а если нет интернета на ПК
Разве кто-то будет побовать активировать программу без интернета?
0
Пишу на Delphi...иногда
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
01.08.2014, 18:28 9
Цитата Сообщение от Alex47_pro Посмотреть сообщение
сделать лицензию на неделю
что есть неделя? работоспособность программы в течение 7 дней без учета времени работы или общее время работы в программе в течение 7х24=168 часов с момента первого запуска

любой вариант сводится к хранению информации (локально или на сервере), необходимой для расчета срока работы и подтверждения валидности хранимой информации
0
17 / 17 / 32
Регистрация: 17.03.2014
Сообщений: 86
01.08.2014, 18:40 10
Цитата Сообщение от cotseec Посмотреть сообщение
любой вариант сводится к хранению информации (локально или на сервере), необходимой для расчета срока работы и подтверждения валидности хранимой информации
что касается самой активации, мне кажется, что необходимо использовать сервер
1
Пишу на Delphi...иногда
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
01.08.2014, 18:58 11
активация программы, как процесс и часть системы лицензирования, не самая главная операция в механизме лицензирования, гораздо важнее продумать где, в каком виде и как хранить информацию, доступную для лицензируемого ПО и необходимую для получения ПО информации об окончании/недействительности текущей лицензии. Как раз место хранения (локально или удаленно) и способ хранения (удаленно в БД или локально в зашифрованном виде с дублированием ключа/ключей) такой информации и является камнем преткновения: простота для пользователя/стойкость к взлому/стоимость системы лицензирования
Также не малую роль тут играет целевая группа пользователей лицензируемого ПО
0
17 / 17 / 32
Регистрация: 17.03.2014
Сообщений: 86
01.08.2014, 19:08 12
как сказал D1973 можно:
Цитата Сообщение от D1973 Посмотреть сообщение
Записать в реестр дату первого запуска, как-нибудь зашифровав ее, чтобы враг не догадался и при последующих запусках считывать, дешифровать и сравнивать с текущей.
Также при каждом запуске в реестр записывать разницу между датой регистрации и текущей датой. После проверять, если текущая разница меньше записаной в реестр, то вывводим сообщение о необходимости активации программы. (Если пользователь захочет перехитрить и поменяет время и дату)

А для проверки ключа использовать сервер, как я уже описал выше.
0
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
01.08.2014, 22:31 13
Цитата Сообщение от Alex47_pro Посмотреть сообщение
и при последующих запусках сравнивалось с времинем и датой на сервере
Кину код, как один из вариантов, раз уж он у меня есть мож кому и пригодится.
Кидаем на форму компонент IdSNTP

Delphi
1
2
3
4
5
6
  IdSNTP1.Host := 'time.windows.com';
  IdSNTP1.Port := 123;
  IdSNTP1.Active := True;
  Edit1.Text := DateToStr(IdSNTP1.DateTime);
  Edit2.Text := TimeToStr(IdSNTP1.DateTime);
  Edit3.Text := DateTimeToStr(IdSNTP1.DateTime);
Изображения
 
0
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
01.08.2014, 22:37 14
Так же можно в код добавлять это если надо.
Delphi
1
2
  IdSNTP1.ReceiveTimeout := 5000; //òàéì àóò
  IdSNTP1.SyncTime; //ñèíõðîíèçèðîâàòü äàòó- âðåìÿ ñ ñèñòåìíûì
0
Модератор
9267 / 6045 / 2380
Регистрация: 21.01.2014
Сообщений: 25,812
Записей в блоге: 3
02.08.2014, 21:07 15
Ну вот, что-то нацарапал на тему того, что предложил DenNik
Идея такая:
1. Пользователь ставить программу и работает 1 неделю (7 дней) чистого времени, независимо от того, сколько дней программа у него находится. Он может работоть с ней по 10 -15 мин. в день, все равно срок действия лицензии - неделя работы.
2. По окончании срока вываливается окошко с кодом, который нужно предоставить правовладельцу программы.
3. На основании предоставленного кода правовладелец генерит новый код лицензии на определенный срок (от 1-й недели до бессрочной лицензии), который предоставляется пользователю.
4. Пользователь вводит полученный код и работает еще столько времени, на сколько была продлена лицензия.

В архиве 2 папки:
1. Project - сама программа
2. KeyGen - программа генерации нового кода лицензии.
Вложения
Тип файла: rar trial.rar (179.5 Кб, 268 просмотров)
0
0 / 0 / 0
Регистрация: 28.02.2017
Сообщений: 20
15.03.2017, 04:14 16
D1973, Vi probovali etu arxiv?Ya paprobuval cto to ne rabotal.istek vremya neceqo ne polucilas .mojet vi pomujite.
0
Модератор
9267 / 6045 / 2380
Регистрация: 21.01.2014
Сообщений: 25,812
Записей в блоге: 3
15.03.2017, 10:55 17
Цитата Сообщение от sadixli Посмотреть сообщение
Vi probovali etu arxiv?
Ну конечно я его пробовал, если сам его и делал...
Цитата Сообщение от sadixli Посмотреть сообщение
Ya paprobuval cto to ne rabotal
А у меня работал 2,5 года назад, отработал и сейчас... В чем выражается это "не работал"? Если это
Цитата Сообщение от sadixli Посмотреть сообщение
istek vremya neceqo ne polucilas
то сколько прошло времени?

Не по теме:

И. да, попробуйте найти клавиатуру с русской раскладкой...

1
Житель Земли
3002 / 3004 / 391
Регистрация: 26.07.2011
Сообщений: 11,463
Записей в блоге: 1
15.03.2017, 10:56 18
sadixli, ну так сколько лет прошло. нужно продлять лицензию
1
0 / 0 / 0
Регистрация: 28.02.2017
Сообщений: 20
15.03.2017, 14:57 19
Добавлено через 11 минут
D1973, Seqodnya nocyu 15.03.2017 2:45 doljna zakoncitsya i blokirovatsya poka yesyo niceqo.Dumal cto 15.03.2017 14.45 nu dnyom toje neceqo.Pomoc Pojaluysta.Zaraniye spasobo za vsyo
0
Модератор
9267 / 6045 / 2380
Регистрация: 21.01.2014
Сообщений: 25,812
Записей в блоге: 3
15.03.2017, 16:04 20
sadixli, у Вас есть темы, где Вы писали нормальной кирилицей... Будьте любезны сделать в этой теме то же самое... Переписку на транслите я поддерживать не собираюсь...
0
15.03.2017, 16:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2017, 16:04
Помогаю со студенческими работами здесь

Лицензия для программы
Здравствуйте, я использую компилятор MinGW 4.7.0 и IDE CodeBlock для написания одной программы...

Распространение программы, лицензия
Здравствуйте, много прочитал и тут, и в интернете о распространении программ, написанных на Qt. ...

Одноразовая офлайн лицензия для программы
Во многих программах используется активация. Вот у меня возникла необходимость сделать её для...

Не может быть получена лицензия для запуска программы
Добрый день! Есть сервер W2008R2, на него по usb over ip пробрасывается ключ для по PlanTracer Pro...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru