Содержание статьи
Этот сервис я выбрал как один из самых распространенных, удобных и не требующих сложных действий вроде регистрации ИП или заключения договоров. Зачем нам эта бюрократия? Нам работать надо!
Писать будем на Python, хотя, внимательно изучив примеры, ты сможешь при желании воспроизвести их на другом языке.
Постановка задачи
Итак, дано: есть программа, единственная функция которой — выводить на экран текстовое сообщение. Если программа работает в деморежиме, то сообщение будет «Демка», если в полноценном, то «Программа зарегистрирована». Демка бесплатна, полная версия будет стоить рубль (дороже такое вряд ли кто‑то купит).
Требуется: прикрутить к нашей программе возможность платно переключаться из деморежима в полноценный, при этом желательно вообще без нашего участия.
Вот наша программа:
def get_ID(): # Тут надо вставить генерацию уникального ключа, # но для иллюстрации сойдет и просто константа, # задаваемая вручную для каждого экземпляра ПО return 1def get_key_from_file(file_name): try: key_file = open(file_name, "r") key = key_file.read() return key except: return 0def check_key(): key = int(get_key_from_file('key.txt')) # Такой вот простой алгоритм генерации ключа # В реальной программе следует придумать посложнее if key == get_ID() * 2: return True else: return Falseif check_key(): print('Программа зарегистрирована!')else: print('Демка!')
Алгоритм работы такой:
- Программа при запуске создает ID пользователя. Можно, к примеру, генерировать идентификатор на основе серийников установленного железа, а если ты решил делать бота для Telegram, то достаточно взять
user_id
. - Программа проверяет файл лицензии, где надеется увидеть сгенерированный на основе своего ID набор данных (назовем его ключом), из которого будет понятно, оплатил ли пользователь покупку.
- Если ключ подходит, то выводим сообщение об этом.
- Если ключ неправильный, программа выводит сообщение «Демка».
Нам нужно реализовать возможность получения ключа в автоматическом режиме, то есть без участия создателя программы. Ключ должен выдаваться каждому свой, в зависимости от ID, и только тем, кто нам заплатил.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»