2009-09-01 5 views
1

Я использую C# и имею ключ, который пользователь вводит для активации моей программы. Я не хочу, чтобы пользователь мог видеть ключ после его ввода. У вас есть какие-либо рекомендации относительно того, как и где его хранить?где сохранить ключ активации

+0

Где сохранить kay? я не хочу, чтобы этот пользователь увидел этот ключ –

+2

Какой ключ? Какая программа? «Активация»? Вы не имеете никакого смысла. Пожалуйста, дайте более подробную информацию о том, что вы пытаетесь сделать, что вы уже сделали, и с чем именно вы столкнулись. – Bombe

+0

Bombe У меня есть форма активации из моей программы, теперь я не знаю, где сохранить этот ключ активации (когда программа запускает проверку этого ключа активации). –

ответ

5

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

Вы могли бы быть заинтересованы в этом проекте в CodePlex: http://licenser.codeplex.com/

Edit: Некоторые вопросы для вас, чтобы проверить.

  1. Where should I store my activation key

  2. Best way to generate activation codes for software?

  3. Best activation key software for .NET application?

+0

очень спасибо, вы меня поняли, yeeeeeeeeee :) это нормально, и это не способ сохранить эту ключевую программу IN? (не отдельный файл) –

+0

Почему бы не сохранить его в отдельном файле? – Shoban

+0

пользователь легко может это увидеть –

0

Можно, конечно, хранить ключ в ресурс с Excutable, его довольно длительная процедура, есть несколько интерфейсов доступные как OpenResource, GetResourceData и UpdateResource, ресурсы недоступны легко если у вас нет визуальных студийных инструментов.

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

+0

«Но вы не можете изменить ресурсы исполняемого файла» Я хочу написать ключ к этому файлу :( –

+0

Интересно, что мешает пользователю копировать файл на другой компьютер после того, как он был «заклеймен»? Или вы планируете добавить какой-либо MAC-адрес или другую информацию об оборудовании в файле, кроме ключа? –

0

Предполагая, что компьютер под управлением Windows работает с вашим приложением, вы также можете использовать реестр для хранения зашифрованного ключа (возможно, MD5?).

Таким образом, он не находится в «файле», который может быть просмотрен пользователем (хотя он может быть просмотрен/изменен/удален пользователем).
На мой взгляд, пользователи (стандартные ...), как правило, не смотрят в реестр - вы можете спрятать свой ключ там.

На самом деле, @ Shoban по первой ссылке where-should-i-store-my-applications-activation-key имеет более подробное обсуждение по этому вопросу - вы должны прочитать его ...

0

Я знаю, что это больше похоже на криптографические ключи - но как насчет windows key container?

1

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

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

Смежные вопросы