Помощь с идентификатором оборудования - PullRequest
2 голосов
/ 06 августа 2010

Я использую C # и .NET 2.0.Моему приложению нужен какой-то способ проверки разных пользователей, поэтому я буду использовать аппаратный идентификатор, но я видел, что могу использовать только:

  • MAC-адрес - легко изменяемый, и не у всех он есть // НЕТ
  • идентификатор процессора - с помощью WMI он возвращает значение для модели процессора, он не уникален // NO
  • серийный номер материнской платы - не на каждой материнской плате есть // NO
  • Windowsсерийный том - я не уверен, будет ли он изменен при переустановке Windows и формате тома

Так есть ли что-то, что я не упомянул для hwid?Я хочу что-то, что у всех есть, и это не будет стерто при переустановке Windows.В противном случае мне пришлось бы использовать серийный номер тома Windows.


РЕДАКТИРОВАТЬ: Из комментариев я думаю, что лучше использовать идентификатор жесткого диска.Как получить его?EDIT2: я только что прочитал, что диски SCSI не имеют последовательных.Это правда?

ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: Я уже использую серийный номер корневого диска в своем приложении.Это работает довольно хорошо.Спасибо всем.

Ответы [ 5 ]

2 голосов
/ 06 августа 2010

HDD Серийный номер: уникальный, неизменяемый, и у каждого есть.

не идеальный вариант, но ...

1 голос
/ 06 августа 2010

Ну, я бы выбрал более одного идентификатора. Если вы объедините достаточно идентификаторов, они получат достаточно уникальности.

РЕДАКТИРОВАТЬ: вы также можете перейти на место на жестком диске, на котором была установлена ​​ваша программа (диск, цилиндр и т.

0 голосов
/ 07 января 2011

Нужно ли думать о безопасности или только о надежности, т. Е. Хочет ли пользователь подделать вашу проверку личности?Если вам нужна (высокая) безопасность, купите один из продуктов «защиты программного обеспечения», это гораздо дешевле, чем сделать это самостоятельно.

Не требуется высокий уровень безопасности?=> Другая возможность - использовать SID пользователя или компьютера.Вы должны принять во внимание, что ваше приложение выполнено elvated => Тогда пользователь является администратором.

Последнее, но не менее важное: записать случайное значение в несколько байтов в реестр (возможно, в различных местах) в разделе HKEY_CURRENT_USER и использовать их в качестве идентификатора.

0 голосов
/ 07 января 2011

MAC-адрес не очень надежен.Вы должны использовать что-то, что не может быть изменено, например, ID процессора или IDE HDD.

Вот, что я хочу сказать:
http://www.soft.tahionic.com/download-hdd_id/index.html
http://www.soft.tahionic.com/download-hdd_id/hardware%20ID%20programmer%27s%20DLL.html


И чтобы ответить на ваш вопрос, да, у SCSI нет аппаратного идентификатора.

0 голосов
/ 06 августа 2010

Почему вы хотите использовать аппаратный идентификатор? Я бы сам пошел на какую-то защиту на основе форм (или AD).

Однако, учитывая следующее: особенность HWID состоит в том, что он идентифицирует конкретную конфигурацию компьютера: он предназначен для изменения при наличии системных изменений. Вы упоминаете, что Windows Volume Serial может измениться при переустановке и переформатировании, но не нужно ли переустанавливать ваше программное обеспечение на этом этапе? Последовательность жестких дисков также может измениться, если, скажем, пользователь по какой-то причине меняет местами жесткие диски.

Если вам нужно использовать HWID, вам, вероятно, потребуется выбрать один (или несколько) из доступных вариантов, чтобы обеспечить уникальность и либо кодировать, либо информировать пользователей об изменениях оборудования, требующих переустановки и / или перенастройки вашего программного обеспечения.

...