Подтвердить что ты не робот

Как создать регистрационный ключ пользователя в Delphi?

Для моего текущего приложения я использую очень простую схему регистрации новых пользователей. Когда новый пользователь регистрирует электронное письмо, он отправляется с ключом. Чтобы проверить, правильно ли указан этот ключ, вычисляется какая-то контрольная сумма (проверка 3-7-11 цифр), которая добавляется в качестве последних двух цифр ключа. Нет никакой проверки на дальнейшую действительность ключа. Приложение не проверяет, был ли ключ признан недействительным.

Это простая схема, и кто-то нашел время взломать ее, разобрав код. Я хочу использовать другую схему для моего нового приложения, но я не уверен, что это лучший способ сделать это.

  • Есть ли библиотека Delphi, которую я мог бы использовать?
  • Можно ли использовать некоторую пользовательскую информацию в ключе, например, его имя?
  • Есть ли лучший способ регистрации пользователей?
  • Что-нибудь еще, что я забыл?

Некоторые схемы регистрации требуют, чтобы приложение проверяло каждый раз на веб-сервере, сохраняет ли ключ все еще. Я бы предпочел не зайти так далеко, потому что это требует больших усилий на стороне сервера.

Любое предложение или ссылка для надежного способа регистрации новых пользователей приветствуется.

4b9b3361

Ответ 1

Лучшая схема регистрации основана на асимметричной криптографии (обычно алгоритме RSA). Идея состоит в том, что только вы можете создать действительный ключ, в то время как каждый может проверить, что ключ действителен (асимметричная криптография позволяет этот трюк). Поэтому, когда вы видите свою программу с действующим ключом на торрентах, вы просто отменяете поддержку для клиента, которому был дан этот ключ.

Ответ 2

Есть Delphi и библиотеки, отличные от Delphi (например, Protexis), доступные для защиты вашего программного обеспечения - помните, что почти все, что работает с C может работать и с Delphi. Но создать схему защиты от звуковой копии может быть трудно. Простой ключ может не работать, обычно он используется вместе с отпечатком машины, чтобы он мог использоваться только в данной системе.

Хороший алгоритм генератора ключей должен генерировать ключи, которые нелегко предсказуемы, но могут быть проверены, если они действительны. Есть разные, нет "общего", зависит от ваших потребностей, некоторые могут также включать в себя какие функции для активации или истечения срока действия информации. Некоторые ключи могут быть строками, другие могут быть целыми файлами лицензии (как те, которые используются самим Delphi). В любом случае код можно разобрать, чтобы попытаться угадать алгоритм, можно использовать некоторые методы, чтобы запутать его и сделать его более трудным для понимания.

Кроме того, одной простой проверки ключа недостаточно, поскольку ее можно легко обойти исправление исполняемого файла. Если вам действительно нужна защита от копирования, вы должны разбросать проверки по всему коду, возможно, зашифровать, а затем дешифровать данные или разделы кода с помощью ключа - в любом случае он не будет защищать вас от кейгена и потребует больше изменений кода, это не так просто как вызов одной функции при запуске.

Уровень защиты зависит от вас. Если вам нужен простой механизм регистрации, и вы не против, чтобы ваше программное обеспечение было взломанным, вы можете использовать простой. Если вам нужен более безопасный, тогда есть более сложный.

Ответ 3

Если ваша цель - заставить людей загружать взломанный EXE из Интернета вместо генератора ключей из Интернета, то ваш ответ будет асимметричной криптографией.

Если ваша цель - убрать серийные номера, выпущенные в дикую природу, ограничить количество установок или заставить пользователя иметь реальный "оплаченный" серийный номер, тогда активация - это ваш ответ. Тем не менее, если они взломают ваш EXE, они могут обойти это.

У вас есть только контроль до того, что кто-то треснет ваш EXE. Мы должны принять это и двигаться дальше. Мы должны выяснить другие способы обратиться к нашим клиентам, такие как более доступные версии, варианты поддержки с добавленной стоимостью, веб-сервисы и другие способы, которые убеждают пользователя в том, что цена нашего программного обеспечения является справедливой, и есть преимущество в оплате.

В моей последней версии я использую активацию, поэтому серийные номера генерируются случайным образом, хотя проверяются на уникальность и связаны с адресом электронной почты.

После всего этого приложение составляет всего 4,99 доллара США, но без отдельной поддержки. Цель состоит в том, чтобы сделать его настолько доступным, что если они хотят его использовать, даже однажды, это хорошая ценность.

Ответ 4

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

Вы также можете отключить определенные ключи, если вы определите, что они "украдены". Сделав это, будущие обновления, которые вы поставляете, больше не будут работать с этими ключами.

У нас также есть свое программное обеспечение "домой по телефону" в определенное время, чтобы узнать, украден ли их ключ.

Любая схема защиты может быть нарушена кем-то, кто определен и достаточно квалифицирован. Но мы были довольны той степенью безопасности, которую мы считаем, что дает нам WinLicense. Их поддержка также превосходна. Библиотека может быть вызвана из Delphi.