По моему опыту, просьба ввести или скопировать / вставить 30-символьный код пользователя действительно приводит к разочарованию клиентов.Это не так сложно.Это просто препятствие, о котором люди не заботятся.
Решение, которое я использовал для моего бизнеса , заключается в том, чтобы иметь отдельные пробные и приобретенные загрузки.Чтобы получить лицензированную копию, клиент вводит свой адрес электронной почты и короткий идентификатор пользователя в форме загрузки.При вводе только электронной почты автоматически отправляется идентификатор пользователя.Вы не спрашивали об этом, но система автоматического поиска кода, который нужен заказчику, даже важнее, чем простая система.Система загрузки ищет сведения о пользователе в базе данных и предоставляет файл SetupSomeProductCustomerName.exe, в который встроена лицензия пользователя.Эта установка устанавливает лицензионную копию клиента, не требуя дополнительной идентификации или подключения к серверу.
Эта система действительно хорошо работает для нас.У клиента есть только один файл для резервного копирования и нет серийных номеров, которые можно потерять, чтобы он мог переустановить программное обеспечение в будущем.
При этом, если вы предпочитаете использовать систему с односторонним хэшем,просто используйте алгоритм, который генерирует меньший хэш.Например, CRC-32 дает 8 шестнадцатеричных цифр.
Нет никакого смысла в криптографической безопасности хэша.Взломщик просто пройдет по вашему коду, скопирует весь блок кода, который изменяет адрес электронной почты, в лицензионный ключ и вставит его в свой кейген.Затем они могут генерировать лицензионные ключи для любого адреса электронной почты.Они могут делать это независимо от того, насколько сложен ваш алгоритм хеширования.
Если вы хотите предотвратить это, вам нужно использовать шифрование с открытым ключом, что приводит к слишком длинным ключам для ввода.В этом случае вам нужно либо раздражать своих клиентов длинными ключами для вставки, либо разделять ключевые файлы, либо использовать персонализированную систему загрузки, которую я описал выше.