Как получить идентификатор или строку, уникальную для каждого пользователя / ПК в Java? - PullRequest
0 голосов
/ 19 июня 2011

Я ищу уникальный идентификатор или строку для идентификации пользователей или компьютеров. Я создаю сценарий Java с методом безопасности, который использует уникальный идентификатор или строку. Я использовал MAC-адрес раньше, но после обновления у разработчиков, для которого я пишу код, это больше не разрешено. Есть ли другой способ получить какой-то уникальный идентификатор для идентификации пользователей или компьютеров, который разрешен? Для получения дополнительной информации: я пишу код для RSBot, программы с открытым исходным кодом, которая запускает созданные пользователем Java-скрипты.

Спасибо заранее, Кевин.

Ответы [ 3 ]

0 голосов
/ 19 июня 2011

Вы также можете посмотреть на кувшин -

GUUID на основе устройства Ethernet, случайное время, время и т. Д.

http://wiki.fasterxml.com/JugHome

0 голосов
/ 15 марта 2019

OSHI - бесплатная библиотека информации о операционной системе и аппаратном обеспечении на основе JNA для Java. Не требует установки каких-либо дополнительных собственных библиотек. Maven зависимость:

<dependency>
    <groupId>com.github.oshi</groupId>
    <artifactId>oshi-core</artifactId>
    <version>3.13.0</version>
    <scope>compile</scope>
</dependency>

Вы можете получить системную информацию, такую ​​как идентификатор ОС, идентификатор процессора, идентификатор базовой платы и т. Д. Затем просто скомбинируйте id-ы, чтобы сгенерировать UUID ПК:

public String getUID() {
    final byte[] rawInput = StringUtils
            .joinWith(hardwareLayer.getProcessor().getProcessorID(),
                    hardwareLayer.getComputerSystem().getBaseboard().getSerialNumber(),
                    ... )
            .getBytes(StandardCharsets.UTF_8);
    try {
        return UUID.nameUUIDFromBytes(rawInput).toString().toUpperCase();
    } catch (final Exception e) {
        logger.error(e);
        return StringUtils.EMPTY;
    }
}
0 голосов
/ 19 июня 2011

См. java.util.UUID, в частности:

UUID.randomUUID();

http://download.oracle.com/javase/1,5.0/docs/api/java/util/UUID.html#randomUUID()

Обратите внимание, что это случайное, но не воспроизводимое . Если вам нужно снова и снова генерировать один и тот же идентификатор на одном и том же компьютере, это не то, что вам нужно.

...