Генерация и проверка серийного ключа в Java (уникальный идентификатор машины)

Я должен защитить с помощью ключа проверки приложение, написанное на Java, ключ должен работать только на указанном ПК, поэтому, например, серийный номер идентификатора машины должен быть сгенерирован приложением на основе уникального идентификатора (например: серийный номер жесткого диска , Серийный номер MainBoard и тд ...); затем на основе этого уникального идентификатора другая программа сгенерирует ключ проверки.

Я уже реализовал аналогичную систему активации в приложении .NET, генерирующем идентификатор машины, получая серийные номера оборудования из WMI. Как я могу получить эти значения в Java? Решение должно работать независимо в Windows, Linux и Mac Os X.

Как я могу получить уникальный идентификатор машины на Java? Есть ли какая-нибудь библиотека, позволяющая это делать?


person aleroot    schedule 05.03.2012    source источник
comment
Возможный дубликат: stackoverflow.com/questions/1986732/   -  person TPete    schedule 05.03.2012


Ответы (3)


MAC-адрес машины (или один из MAC-адресов машины) является хорошим кандидатом. Он уникален и, вероятно, меняется реже, чем другие идентификаторы оборудования. Вот фрагмент кода:

person Andreas Dolk    schedule 05.03.2012

Я не думаю, что вы можете получить идентификатор процессора или жесткого диска / материнской платы на чистом java. Ближайшее из имеющихся у вас - сетевой Mac адрес:

NetworkInterface.getNetworkInterfaces().nextElement().getHardwareAddress();
person Yoni Roit    schedule 05.03.2012

Вам нужно назвать что-то конкретное для платформы. Например, в Windows вы можете вызвать сценарий VB, который вызывает WMI для получения этой информации.

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

person Peter Lawrey    schedule 05.03.2012