Другие языки программирования и технологии

Как сделать лицензию на языке lua?

я видел программы, которые генерировали уникальный код, и если дать код разработчику, то он даст уникальный ключ который подходит только для моего ПК! (лицензия)
Покажите пожалуйста как на языке LUA сгенерировать такой уникальный код для каждого ПК.
Заранее спасибо!

P.S. не спрашивайте зачем мне это.
Это делают сами прогеры! То есть создавая прогу они сразу пишут для нее генератор ключей (отдельно от проги) и вшивают в свою прогу проверку лицензии !

Я делал лично свой генератор ключей и свою проверку для программы !
Мне всего понадобилось несколько переменных (дополнительных ) - которые оприделяли в какой контент можно поподать а в какой нужен ключь регистрации !

Тут есть много способов как такое реализовать (но основа практически одна) - в начале есть два пути
1) генерировать случайное число (функция randomize (c++) - или rnd )
2) Написать самому алгоритм случайного числа в зависимости от ПО (брать зависимость оборудования которое в компе - Регестрационные коды внутриностей и скажем просто их всех сплюсовать) - есть плюс (згенерированный однажды ключь - будет подходить всегда только для данного ПК )

Отталкиваться от оборудования весьма не плохо но написать алгоритм не так легко как с простым Рандомным числом !
Далее нужно работать с файлом (я работал с txt) - при первом запуске нужно проверить существует ли txt если нет То создать рандомное число и записать в него (тут можно работать с реестром вместо Тхт) - если Тхт существует то это уже не первый запуск - считываем Тхт в переменную и храним пароль !

При желании пользователя получить ключь - он жмет скажем регестрация - у него всплывает окошко с просьбой Отправить этот универсальный код (который мы сгенерировали случайно ) - на такой то адрес - ниже сделать ввод для ответа и кнопку зарегестрироватся - вам приходит некое число и далее все зависит от того как вы организуете проверку у себя в нутри программы !

Скажем что наш алгоритм проверки в нутри проги нашей проверяет различия между сгенерированным числом и присланным на почту нашим - причем операции могут быть самыми разными !

Ну например самое легкое - если число присланное нами должно быть на 356 быть больше - то олгаритм прост
int system_pass = 244 (Обычно цифр от 8 и выше)
int Mail_pass = TextBox->Text (Введенное пользователем) - Должно быть 600 (на 356 больше)
If (abs(system_pass - Mail_pass ) == 356)
{
//прошли проверку ключа успешно
License(true) // Функция которая создаст файл лицензии и внесет некие данные ну для подтверждения
}

Получается при запуске проги нужно пытаться открыть два файла - первый файл лиценции а если его нет тогда файл случайного сгенерированного кода !

int - это тип переменной (числовая 4 бита ) - без точки
abs () - функция уберает знак - делает результат положительным
Это что бы ты понял пример приблезительно

Проверку ключа можешь навернуть как пожелаешь - я делал и с корнем и с MD5 проверкой
Теперь есть небольшая осечка - скопировав файл лицензии и перенести его на другой камп прога станет
лицензионной на другом кампе - что бы этого небыло создавать нужно файл лицензии Бинарным и загонять туда данные сильно зависящие от первичного кода (особенно если он зависит от оборудования)

Конечно такая защита только для Юзеров и темнеменее я на тот момент думал что ее не так легко взламать (я представлял как они сделают перебор поролей хотя я сильно ошибался ) - всего один шаг до взлома подобного !

Надеюсь было позновательно - генератор ключей пишеться как отдельная прога с тем же олгаритмом что и в нутри твоей проги только немного измененный !
Далее зависит все от твоей фонтазии !
Канат Батыров
Канат Батыров
28 931
Лучший ответ
Николай Сесюнин благодарю!
выручил!!!
Максим * Можете убрать чтение файла лицензии, если я вам отправлю саму программу? Отблагодарю
Ну по идее, нужно написать свою виртуальную машину, которая будет принимать какой-нибудь RSA ключ и внутри себя переводить одни опкоды в правильные опкоды.

Только зачем всё это надо на таком нищем уровне? Там простой проверки на ключ, даже без криптования, хватит, инфа 100%
Николай Сесюнин в смысле?
какая простая проверка?

Похожие вопросы