我正在编写一个程序,该程序要求运行该程序的计算机具有唯一的序列ID。它需要永远不改变(或者很少改变,用户必须提前知道它什么时候会改变)。另外,我需要它在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上实现这一点的一种方法将是完美的
发布于 2015-03-24 07:59:51
没有计算机序列号,即使有,客户端的软件也可以被修改为发送任何数字。您可以通过某种方式合并网卡的媒体访问控制地址(MAC地址),但该地址可以通过软件更改,也可以换出网卡,也可以有多个网卡。
对于投票应用程序,您唯一能做的就是使用安全的硬件,该硬件包含一个不能复制的唯一数字,并与加密一起使用。这就是智能卡的作用。
https://stackoverflow.com/questions/29222406
复制相似问题