Регистрация ключа продукта — Visual Basic

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

спасибо,

Кевин


person lab12    schedule 17.10.2009    source источник


Ответы (5)


Вы можете использовать расширенный установщик. У них есть встроенная система лицензирования.

Это немного дорого, но это сэкономит вам деньги в долгосрочной перспективе. Конечно, можно попробовать сделать самому. Автономную регистрацию немного сложнее защитить, чем ту, которая проверяет базу данных.

person Cyclone    schedule 21.11.2009

Ознакомьтесь с Shareware Starter Kit (бесплатно) от Microsoft.

http://blogs.msdn.com/danielfe/archive/2005/07/10/437293.aspx

person NotDan    schedule 17.10.2009
comment
Я не использовал его, но на странице, которую я разместил, есть ссылка для загрузки VB. - person NotDan; 20.10.2009
comment
Да, когда я загружаю его из Microsoft, он говорит мне преобразовать в 2008 год, а затем, когда я отлаживаю, он дает мне массу ошибок ... - person lab12; 20.10.2009
comment
Работает отлично. Видел это на мероприятии MS некоторое время назад, очень солидно. - person Walter; 22.11.2009

Держите вещи простыми для начала. Если вам нужно больше сложности или более надежная защита, сделайте это после того, как вы разработаете базовую структуру.

Первый шаг. Посмотрите на некоторые простые алгоритмы шифрования, такие как Tiny Encryption Algorithm. Освойтесь с шифрованием и дешифрованием файла с помощью одного ключа.

http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm

Следующий шаг. Вам понадобится много ключей, база данных для их хранения и какой-то идентификатор клиента, чтобы с ними связать. Для начала предположим, что идентификатор клиента представляет собой 6-значное число, начинающееся с 100000, ключ имеет длину 128 бит в шестнадцатеричном формате, а база данных представляет собой простой текстовый файл. На этом этапе у вас не должно возникнуть проблем с созданием программы для генерации пакета ключей для следующих 100 клиентов.

Третий шаг. Теперь у вас есть база данных, поэтому настройте несколько сценариев или приложение, чтобы вы могли зашифровать определенный файл, создав несколько копий, по одной для каждого идентификатора клиента, зашифрованных их ключом.

Четвертый шаг: напишите короткое простое приложение, которое берет файл, расшифровывает его с помощью ключа, затем загружает и запускает полученный исполняемый файл. После завершения работы приложения удалите расшифрованный файл.

Теперь маленькое приложение, которое расшифровывает и работает, должно каким-то образом создаваться в многочисленных версиях, по одной для каждого клиента с его ключом. Лучший способ сделать это — сгенерировать случайное число того же размера, что и ключ, и поместить его как константу в код. Затем скомпилируйте его. На этом этапе такой инструмент, как grep, может найти, где он находится в исполняемом файле. Напишите еще одно небольшое приложение для чтения в приложении-расшифровщике, замените тег реальным ключом и напишите версию расшифровщика, которую вы будете распространять с соответствующим расшифрованным приложением.

После этого вы, возможно, захотите взглянуть на алгоритмы дешифрования лучше, чем TEA, но не используйте что-то слишком сильное, что противоречит законам об экспорте.

Обратите внимание, что ничто из этого не помешает решительным ворам, но должно защитить от случайных, и вы многому научитесь. Лучшая безопасность может быть достигнута с приложением, которое хранит важные части себя на зашифрованном USB-ключе, чтобы на жестком диске никогда не было расшифрованной копии. И помните, каждый раз, когда вы думаете, что нашли способ улучшить шифрование или защиту кода, вы, скорее всего, ошибаетесь. Гораздо более великие умы, чем наши, посвятили всю свою жизнь изучению шифрования, и общее правило состоит в том, что, когда вы немного отклоняетесь от общепринятых алгоритмов и способов использования, вы в конечном итоге снижаете, а не повышаете безопасность.

person Michael Dillon    schedule 17.10.2009

Развернуть собственную программу регистрации и защиты невероятно сложно, и обычно ее очень легко сломать. Попробуйте взглянуть на некоторые из недорогих коммерческих продуктов, которые уже делают это, intellilock стоит дешево, и я признан хорошо представленным (если не поддерживается компанией, которая его производит, хорошо поддерживается сообществом).

person Kris Erickson    schedule 17.10.2009
comment
Есть ли бесплатные и не демо-версии? Мне нравится, как работает Intellilock, но мне просто не нравится, что это демо-версия и стоит 129 баксов. У них есть что-то подобное под названием Aquatic Prime для Mac, это бесплатно. - person lab12; 20.10.2009

Если у вас есть центральный репозиторий действительных кодов, пользователям вашего программного обеспечения потребуется подключение к Интернету для связи с этим репозиторием, чтобы определить, действителен ли введенный ими лицензионный код. Эта схема также может иметь проблемы с масштабируемостью.

Одним из часто используемых альтернативных методов является генерация кодов из данных bye, удовлетворяющих некоторому конкретному математическому соотношению, а затем проверка кода на предмет соблюдения соотношений.

Одним из очень мощных алгоритмов, основанных на вышеуказанной концепции, является криптографический алгоритм RSA.

Если вы можете использовать готовую систему лицензирования на основе RSA, ознакомьтесь с разделом CryptoLicensing.

person logicnp    schedule 22.02.2011