Нет доступа в Интернет и ключи для выстрела
Что касается размера серийного ключа, то между короткими / удобочитаемыми клавишами существует компромисс
( менее безопасно ) и имеет длинные ключи или, возможно, файлы лицензий ( более безопасно ).
Если вам нужны короткие и удобные для чтения ключи, которые позволяют хранить такие вещи, как дата окончания срока действия и функции, вы можете использовать SKGL вместе с Software Protector, которые имеют открытый исходный код (https://help.cryptolens.io/faq/what-is-skgl).
Однако недостатком является то, что они, скорее всего, будут использовать симметричную криптографию и / или сохранят алгоритм генерации ключа внутри приложения. Это означает, что конечный пользователь может попытаться найти ключ шифрования и / или алгоритм (см. http://www.codeproject.com/Articles/764610/Licensing-systems-in-NET).
Доступ в Интернет (или автономно с файлами активации)
Лучшей альтернативой является использование облачной системы, которая отслеживает все лицензионные ключи и позволяет изменять их в любое время.
Если у вас есть веб-система лицензирования, вы можете держать ключи короче и не должны хранить информацию внутри фактического ключа (что имеет место в большинстве автономных систем).
Более того, вы сможете поддерживать больше моделей лицензирования, например, модель на основе подписки.
Решения:
создайте такую систему самостоятельно - это займет много времени и отвлечет вас от основных функций приложения.
использовать существующую систему с открытым исходным кодом в качестве отправной точки - хотя это может быть заманчиво, так как это открытый исходный код и бесплатный, потребуется время, чтобы перенести их в облако + настроить его к вашим конкретным потребностям + поддерживать его. системы с открытым исходным кодом, которые я наблюдал, имеют тенденцию быть очень широкими по функциональности, что усугубляет сложность.
передайте третьей стороне - недостаток в том, что большинство из них не бесплатны.
По моему мнению, вся процедура должна быть передана третьей стороне, которая специализируется на разработке этого конкретного компонента. После масштабирования может потребоваться изменить логику лицензирования. Вместо того, чтобы разрабатывать его самостоятельно, скорее всего, третья сторона уже поддерживает этот сценарий.
Существует несколько решений (, убедитесь, что вы ищете те, которые основаны на сети ), Cryptolens является одним из примеров. Если вы разрабатываете приложение .NET, вот пошаговый пример: https://help.cryptolens.io/examples/key-verification.
Отказ от ответственности : я являюсь автором SKGL / Software Protector, статьи о системах лицензирования и Cryptolens.