![](/img/trans.png)
[英]How to get a unique computer identifier in Java (like disk ID or motherboard ID)?
[英]Java: How do I get a unique serial ID for the computer that will never change
我正在制作一個程序,該程序要求運行該程序的計算機具有唯一的序列號。 它永遠不需要更改(或者很少更改,並且用戶必須提前知道何時更改)。 另外,我還需要它在Linux,Mac和Windows(甚至是Solaris)上運行,或者分別使用一種方式。 我已經嘗試過了...
try
{
Process process = Runtime.getRuntime().exec(new String[]
{
"wmic", "bios", "get", "serialnumber"
});
process.getOutputStream().close();
Scanner sc = new Scanner(process.getInputStream());
String property = sc.next();
String serial = sc.next();
System.out.println(property + ": " + serial);
} catch(IOException e)
{
e.printStackTrace();
}
但是WMIC僅在Windows上。 除此之外,它是完美的。 在Mac和Linux上做到這一點的一種方法將是完美的
沒有計算機序列號,即使有,也可以修改客戶端軟件以發送任何數字。 您可以以某種方式合並網卡的媒體訪問控制地址(MAC地址),但是可以通過軟件更改它,或者可以將該卡換出,或者可以有多個卡。
對於有投票權的應用程序,您唯一可以做的就是使用安全的硬件,該硬件包含無法復制且無法加密的唯一編號。 這就是智能卡的功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.