keylength.com

отаю над приложением, которое я хотел бы продать однажды - раньше, чем позже! Я хотел бы разработать достаточно простую схему серийных номеров, чтобы защитить ее.

Простая комбинация цифра / буква длиной не более 25-30 буквенно-цифровых символов (например, ключи продукта Microsoft)Не требует от пользователя вводить какую-либо личную информацию (например, адрес электронной почты) как часть проверки

Я думал об этом (очень немного) и думаю, что криптография с открытым ключом - это хорошее место для начала. Я мог бы сгенерировать строку, которая идентифицирует лицензию (например, встроенный серийный номер SKU + plain ole), хэширует ее, шифрует и кодирует серийный номер + идентификатор в 25-значный (или около того) буквенно-цифровой ключ. Затем приложение будет декодировать ключ в серийный номер и «подпись», генерировать хеш идентификатора, расшифровывать «подпись» с использованием соответствующего открытого ключа и сравнивать его с сгенерированным хешем идентификатора.

По сути, ключ продукта содержит две части данных: серийный номер, на который пользователь претендует, и своего рода подпись, которую программа может использовать для проверки этого утверждения. Я не знаю, достаточно ли для всего этого 25 буквенно-цифровых символов (каждый из которых кодирует 5 битов, что дает реалистичный результат в 120 битах). Но это не обязательно должно быть криптографически безопасно, просто достаточно, чтобы коды не могли быть легко угаданы. Я в порядке с короткими ключами и короткими хэшами.

Что касается реализации, приложение написано на Objective-C для Mac OS X, но, учитывая, как легко внедрить код в приложения Cocoa, я, вероятно, напишу проверочный код прямо на C.

Ответы на вопрос(5)

Ваш ответ на вопрос