.net 机器的唯一ID应该是什么?它的主板ID?Windows产品ID?

1sbrub3j  于 2023-06-25  发布在  .NET
关注(0)|答案(4)|浏览(155)

我想检索机器的唯一ID。
像其他人一样,我也做了大量的研究,发现没有一个唯一ID生成过程是完美的。
对于主板序列号(ID):它是独一无二的;这是无法改变的但是,如果制造商没有在“内存位置”上添加信息,则在某些机器中可能找不到该信息。然后我发现它没有唯一的ID。LOL
类似地,对于“处理器ID”、“BIOS ID”。
害怕使用PC的其他硬件信息。
可以通过软件更改MAC和Windows产品ID。
“Windows产品ID”是否唯一?
有一种选择是组合这些,但如果组合不是唯一的,如果上述条件适用?
还有其他方法可以找到机器的唯一ID吗?

    • 编辑:**我想根据该唯一ID生成序列密钥,用于软件盗版保护。机器意味着目标PC我必须安装软件。@Guge:谢谢你的提醒。
wmomyfyw

wmomyfyw1#

机器的唯一ID?
没有这样的东西“* The * Unique ID of a machine”,正如你所发现的。
您需要定义您的需求,并使用符合这些需求的ID(可能由您自己分配)。例如,对于Web应用程序,带有GUID的cookie可能足以区分其他匿名用户(使用多个浏览器或“隐私”模式的少量用户可以忽略)。
对于系统管理,在系统级别分配GUID应该足够了(无论如何,需要单独跟踪具有多个启动的多个操作系统安装)。
...

qlckcl4x

qlckcl4x2#

因为其中一些ID可能丢失,用户可以更换组件,所以您需要确定“机器”的含义。
例如,我会查看主板id、处理器id和bios id,因为这些是最不可能改变的。然后我会寻找所有三个,并允许一个失踪和/或自上次以来改变。如果满足这些条件,则允许软件运行。
我不知道,如果两个甚至三个都丢失了,你会怎么做,因为,正如你所说,其他东西,如MAC地址可以被软件更改,硬盘ID可能不是唯一的,会更频繁地更改。

ni65a41a

ni65a41a3#

如果您试图跟踪唯一的计算机在计算机所有者故意试图绕过您的唯一检查的情况下,例如一个免费的计算机游戏,您只希望每个玩家一个帐户,我见过上面提到的类似方法,但使用了一些加密。
收集或尝试收集几条相对稳定的PC信息(MotherboardID / MAC地址/ BIOS),将它们与盐前缀结合起来,然后使用简单的免费算法对其进行加密。该密钥是您为该播放器存储的内容沿着他们的UserID,类似于密码的加密方式。该键将是“机器”的一个非常好的唯一标识符,您可以在每次登录时检查它。
有几个计算机信息你可以去追求,这取决于你想得到与正常人谁改变他们的组件有多大的风险,但只要你没有得到空白的一切你正在检查你应该是相当安全的。

3vpjnl9f

3vpjnl9f4#

我创建了这个Python脚本来做同样的事情。你只需要决定保存文件的路径。如果它存在,将显示uuid,如果不存在,它将创建一个uuid并保存以备以后使用。我猜你是在Windows上写的。

from pathlib import Path
import uuid

seedfile = Path(".HOST_UUID")
if not seedfile.exists():
    UUID = uuid.uuid4()
    seedfile.write_text(str(UUID))
else:
    UUID = seedfile.read_text().strip()
print(UUID)

相关问题