簡體   English   中英

Java:我如何獲得永遠不變的計算機的唯一序列號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM