Я реализую небольшое приложение на C, которое я бы хотел продать в качестве условно-бесплатного ПО по разумной цене позже. Он начнется с 30-дневного пробного периода, который я уже вполне уверен в том, как его реализовать.реализация ключей продукта
Проблема, которая у меня есть, заключается в том, что я не совсем уверен, как реализовать проверку ключа продукта. Что я имею в виду, так это то, что клиент может зарегистрироваться на моей веб-странице (после некоторого времени попробовать продукт), заплатить за продукт и получить ключ продукта в виде aaaaa-bbbbb-ccccc-ddddd-eeeee через e -mail (или, возможно, доступный через его профиль на моем сайте). Пока нет проблем. Он/она затем бросает ключ в соответствующие ключевые поля в моем приложении и бум приложение зарегистрировано.
От того, что я мог собрать, люди либо рекомендуют AES, либо RSA для этого. Честно говоря, я в другом направлении в колледже (не криптография) и один класс криптографии, который я взял, было некоторое время назад. Но из того, что я помню, AES является симметричным алгоритмом шифрования, что означает, что у меня будет только один ключ для шифрования и дешифрования, верно? Как я мог затем генерировать тысячи ключей продукта и все еще проверять их в своем приложении (что, кстати, не требует доступа в Интернет .... так что не проверяйте сервер с сервером)?
Итак, я думаю, что RSA будет способом? Но разве RSA не производит довольно длинные ключи (по крайней мере, дольше, чем требуемые 25 символов сверху)?
В another thread Я читал, что некоторые продукты даже не используют шифрование для генерации/проверки ключа продукта, но вместо этого просто используют некоторые проверки, такие как «добавьте символ 2. и 17., и это должно быть равно x».
Какой самый быстрый, самый простой и безопасный способ пойти сюда? :-) Образцы кода были бы сахаром!
С уважением,
Sebastian
PS: Ох ... и, пожалуйста, не говорите мне, как мой ключ может и будет взломана в какой-то момент ..... Я знаю об этом, что прежде всего потому, что я не хочу тратить много времени на эту проблему, но в то же время не делаю это слишком легко для случайного взломщика.
большое спасибо за информацию. Предположим, что я не могу использовать EEC по какой-то причине ... RSA не поддавался бы 25-символьному ключевому методу, потому что ключи RSA имеют минимальную длину 1024 бит, правильно? – Sebastian
RSA * может * быть только 384 бит, но это слишком длинное для введенного пользователем ключа. Даже если вы дифференцировали верхний и нижний регистр (имея 62 дискретных символа), вам придется иметь 65-ти длинный ключ. И RSA на 384 бит * очень * слаба, поэтому ваш личный ключ, скорее всего, будет скомпрометирован. –
Я вижу бесплатную реализацию ECC здесь: http://www.codeproject.com/KB/security/Elliptic_Curves.aspx. Я не проверял, насколько он хорош. Небольшое рытье наверняка привлечет других. Вот это довольно дешево: http://ellipter.com/. –