Я создал свой собственный генератор ключей (отдельная программа для создания ключей). Значения ключей хранятся в двоичном файле с тем же именем, что и у моей программы, только с другим ext. Пример: myprogram.key
Я храню:
Имя
E-mail
RegType (REG, TRIAL)
RegDate
FirstRun (0 ИЛИ 1)
Программа ищет файл. Если его там нет, он выдает сообщение пользователю и закрывается. Генератор файлов ключей записывает значения в зашифрованные строки, которые затем записываются с использованием встроенных потоковых подпрограмм.
Я создаю ПРОБНЫЙ Ключ, который я распространяю вместе с программой. Если кто-то регистрируется, я создаю им официальный ключ REG.
В любом случае, если они запускают мою программу, она сначала ищет файл ключа. если он найден, он проверяет тип reg, если он является зарегистрированной версией, то программа загружается, и отображается информация о регистрации. Я также храню регдат, который я сравниваю со днем запуска программы и - если регдат больше или равен текущей дате, пользователь получает запрос на перерегистрацию.
Если он обнаружит, что в файле ключа хранится RegType типа TRIAL, тогда дата, когда они впервые запустили его, сохраняется в файле ключей, и флаг первого запуска устанавливается на 1. Затем они могут использовать его в течение 14 дней. Каждый раз, когда они запускают программу, сохраненная дата сравнивается с текущей датой.
Очень простой процесс написания. Это дурак доказательство? НЕТ, ничего нет! У меня был большой успех с моим приложением. Он не широко известен, поэтому нет хакеров, которые могли бы его взломать.