2013-08-03 3 views
6

Я пишу игровой сервер в Java, и мне нужен способ получить уникальный идентификатор для компьютера (защита нескольких учетных записей), целевой платформой является Windows> = XP. Я испытал много способов сделать это с чистой Java и JNI:Как получить уникальный идентификатор компьютера?

  • MAC Address - Очень легко изменить, высокое столкновение шанс
  • (JNI) Материнские платы SN - это не всегда, высокая столкновение шанс
  • (JNI) Diskdrive SN - Не удается обнаружить диск с буквой диска с WMI, мало вероятность столкновения, не работает в Windows XP (не имеет поля SerialNumber)
  • Файл в скрытой папке - не сохраняется после Windows переустанавливать, изменять или удалять, если я знаю, где это.
  • (JNI) Windows GUID - высокая вероятность столкновения, не сохраняется после переустановки Windows.

Любой другой способ?

+0

Если вы пишете в Java, почему есть метки для C++ & c ?! –

+0

Я использую JNI :) – sashok724

+2

@IosifM. Он может писать собственный код в c/C++. – tbodt

ответ

2

Я могу предложить вам использовать CPUID я ве использовал его для моей программы лицензирования

Приветствия :)

+0

очень хорошая идея. –

+0

Но CPUID может иметь только два значения: GenuineIntel или AuthenticAMD – sashok724

+0

У этого есть намного больше - взгляните на [wikipedia] (http://en.wikipedia.org/wiki/CPUID) –

0

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

  • Вы можете иметь IP-адрес пользователя

  • MAC-адрес пользователя

  • Адрес электронной почты пользователя

  • Пользователи HDD Серийный номер

  • U Ser Имя платы и номер

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

+0

Пожалуйста, полностью прочитайте мой вопрос! 1) Многие пользователи используют NAT или динамический IP 2) MAC-адрес небезопасен 3) Электронная почта является изменяемой и имеет службы, которые предоставляют разовые электронные письма 4) Может быть изменено, а не глобально уникально 5) Не всегда – sashok724