Создание идентификатора компьютера на основе аппаратного обеспечения

У меня возник вопрос относительно генерации определенного идентификатора компьютера для целей лицензирования. Предпочтительно этот идентификатор должен быть аппаратным и, следовательно, не должен изменяться, например, при переформатировании пользователем. Кроме того, пользователю должно быть непросто (а лучше даже невозможно) изменить информацию, на основе которой создается идентификатор. В настоящее время у меня есть только два компонента, которые я комбинирую: стандарт CPUID и флаги функций, а также геометрию и общий размер первого физического диска в машине. Хотя это кажется хорошим вариантом для большинства обычных ПК, например, многие нетбуки сделаны с одним и тем же оборудованием, поэтому в этом случае вы получите одинаковый идентификатор для многих компьютеров. Может ли кто-нибудь из вас предложить какой-нибудь другой аппаратный компонент, который я мог бы использовать?

У меня два требования:

  1. Он не должен использовать WMI.

  2. Он должен работать в большом количестве ситуаций (в том числе для пользователей, у которых нет или мало привилегии). Я думал об использовании серийного номера физического диска, но его трудно получить, если пользователь не находится в режиме администратора.

Я работаю на C ++ в Windows.

Заранее благодарим за любые предложения.

С уважением,

Филип Беннефалл

5
задан Simon Mourier 25 May 2011 в 21:26
поделиться