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;
}
}