Я реализую небольшое приложение на C, которое я хотел бы продать в качестве условно-бесплатного ПО по разумной цене позже. Он начнется с 30-дневного пробного периода, который я уже вполне уверен в том, как его реализовать.
Однако проблема заключается в том, что я не совсем уверен, как реализовать проверку ключа продукта. Что я имею в виду, так это то, что клиент может зарегистрироваться на моей веб-странице (после некоторого времени попробовать продукт), заплатить за продукт и получить ключ продукта в виде aaaaa-bbbbb-ccccc-ddddd-eeeee через e -mail (или, возможно, доступный через его профиль на моем сайте). Пока нет проблем. Он/она затем бросает ключ в соответствующие ключевые поля в моем приложении и бум приложение зарегистрировано.
Из того, что я мог бы собрать до сих пор, люди либо рекомендуют AES, либо RSA для этого. Честно говоря, я в другом направлении в колледже (не криптография) и один класс криптографии, который я взял, было некоторое время назад. Но из того, что я помню, AES является симметричным алгоритмом шифрования, что означает, что у меня будет только один ключ для шифрования и дешифрования, верно? Как я мог затем генерировать тысячи ключей продукта и все еще проверять их в своем приложении (кстати, не требуется доступ в Интернет.... так что не проверяйте сервер с сервером)?
Итак, я думаю, что RSA будет способ пойти? Но разве RSA не производит довольно длинные ключи (по крайней мере, дольше, чем требуемые 25 символов сверху)?
В еще один поток Я читал, что некоторые продукты даже не используют шифрование для генерации/проверки ключей продукта, а вместо этого используют некоторые проверки, например: "добавьте 2 и символ 17., который должен быть равен x".
Какой самый быстрый, простой и безопасный способ пойти сюда?:-) Образцы кода были бы сахаром!
Привет,
Себастьян
PS: О... и, пожалуйста, не говорите мне, как мой ключ может и будет треснут в какой-то момент..... Я знаю об этом, что в первую очередь, почему я не хочу тратить много времени с этой проблемой, но в то же время не сделать это слишком легко для случайного взломщика.