Мне нужно использовать уникальный идентификатор для идентификации ПК даже после перезагрузки ОС. Проведя некоторые исследования по поиску лучшего уникального идентификатора, я выбрал серийный номер материнской платы. Но на моей машине он возвращает ноль для серийного номера. Есть ли другой уникальный идентификатор, который я могу использовать, кроме MAC-адреса?

PS C:\Users\user\Desktop> wmic baseboard get product,Manufacturer,version,serialnumber
Manufacturer  Product  SerialNumber  Version
LENOVO        LENOVO   NONE          NONE

2 ответа2

1

Я предлагаю взглянуть на статью Code Project
Генерация уникального ключа (отпечатков пальцев) для компьютера для целей лицензирования.

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

Автор перечисляет эти очень разумные моменты:

  • Генерируйте ключ только из материнской платы, процессора и BIOS, поскольку пользователь обычно не меняет эти части.
  • Не используйте MAC-идентификатор, идентификатор графической карты и идентификатор диска, так как эти устройства очень часто меняются.
  • Получение идентификаторов устройств занимает значительное время. Поэтому сделайте функцию генерирования отпечатка пальца статической и сохраните ее в статической переменной, чтобы она генерировала ключ только один раз во всем приложении.

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

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

0

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

MAC-адрес в порядке, но какой? Для повышения производительности ноутбук может быть подключен через Ethernet, встроенный WiFi или USB WiFi.

Существует системный UUID, который по определению уникален, но я не уверен, универсально ли он реализован.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .