Я создаю простую систему лицензионных ключей, чтобы «держать честных людей честными». Меня не волнует особенно строгая криптография.Должен ли я изменить свой вывод лицензионного ключа с чистого вывода md5 на обычный код типа «XXXX-YYYY-ZZZZ»?
Если они досаждают до демо-ограничений, они заходят на мой сайт регистрации, платят и дают мне свой адрес электронной почты. Я даю им лицензионный ключ.
Я держать вещи очень просто, так:
license_key = md5(email + "Salt_String");
У меня есть PHP и C# функции запуска в тот же алгоритм и получить тот же ключ.
Проблема заключается в том, что выход из этих функций является 32-символьная строка, как:
A69761CF99316358D04771C5ECFCCDC5
Что потенциально трудно запомнить/тип. Да, я знаю о копировании/вставке, но я хочу сделать это ДЕЙСТВИТЕЛЬНО простым для всех платежных клиентов, чтобы разблокировать программное обеспечение.
Должен ли я каким-то образом преобразовать эту длинную строку во что-то более короткое?
Допустим, я использую только первые 6 цифр, так: A69761
Есть, очевидно, намного больше криптографические столкновений в этом, но это будет дело вовсе не в практическом использовании?
Любые другие идеи, чтобы сделать эту вещь более понятной для человека/напечатанной?
Под «регистрацией каждой лицензии на вашем сервере» вы имеете в виду, что приложение должно «звонить домой» при каждом подключении? Наверное, я пока что избегу этого, поскольку я полагаю, что настоящие крекеры смогут обойти это тоже. – cksubs
И спасибо за подтверждение только с использованием первых 6-10 символов. – cksubs
«зарегистрируйте каждую лицензию на своем сервере» - нет, я имею в виду только время, когда пользователь вводит информацию о лицензии в приложение. Это поможет не давать лицензионный ключ другу, конечно, не против реального взломщика. –