我正在寻找一个唯一的ID或字符串来识别用户或PC。 我正在创建一个带有安全方法的Java脚本,该方法使用唯一的ID或String。 之前我使用过MAC地址,但是由于我正在编写的开发人员的更新,这是不允许的。是否有其他方法可以获得某种唯一ID来识别允许的用户或PC?有关更多信息:我正在编写RSBot,这是一个运行用户创建的Java脚本的开源程序。
提前致谢, 凯文。
答案 0 :(得分:0)
请参阅java.util.UUID
,具体来说:
UUID.randomUUID();
http://download.oracle.com/javase/1,5.0/docs/api/java/util/UUID.html#randomUUID()
请注意,这是随机的,但不是可重现的。如果您需要能够在同一台计算机上反复生成相同的ID,则这不是您所需要的。
答案 1 :(得分:0)
答案 2 :(得分:0)
OSHI是Java的免费的基于JNA的(本机)操作系统和硬件信息库。它不需要安装任何其他本机库。 Maven依赖项:
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>3.13.0</version>
<scope>compile</scope>
</dependency>
您可以检索系统信息,例如OS ID,CPU ID,基板ID等。 然后只需结合id即可生成PC 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;
}
}