2012-03-05 7 views
2

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

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

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

+0

Возможный дубликат: http://stackoverflow.com/questions/1986732/how-to-get-a-unique-computer-identifier-in-java- как диск-ID или-материнская плата-идентификатор – TPete

ответ

2

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

0

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

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

1

Я не думаю, что вы можете получить идентификаторы CPU Id или Harddisk/материнской платы в чистой java. Ближайшие у вас есть network mac address:

NetworkInterface.getNetworkInterfaces().nextElement().getHardwareAddress();