[英]i want to get the user unique id. how do i fetch it using getKey method
[英]How do I get an ID or String which is unique for every user/pc in Java?
我正在尋找一個唯一的ID或字符串來標識用戶或PC。 我正在使用一種使用唯一ID或String的安全性方法來創建Java腳本。 我以前使用過MAC地址,但是由於我正在編碼的開發人員處進行了更新,因此不再允許這樣做。 還有另一種方法來獲取某種唯一ID來標識允許的用戶或個人計算機嗎? 有關更多信息:我正在為RSBot編碼,這是一個運行用戶創建的Java腳本的開源程序。
預先感謝凱文。
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;
}
}
具體參見java.util.UUID
:
UUID.randomUUID();
http://download.oracle.com/javase/1,5.0/docs/api/java/util/UUID.html#randomUUID ()
請注意,這是隨機的,但不可重現 。 如果您需要能夠在同一台計算機上一遍又一遍地生成相同的ID,那不是您所需要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.