如何生成唯一的硬件哈希?

如何生成唯一的硬件哈希?

我想知道是否有办法生成特定机器的唯一硬件哈希?哈希应该是机器独有的,即使两台机器的配置相同,哈希也应该不同。这可能吗?

答案1

您可以使用 MAC 地址eth0(假设每台机器上都有)。您可以使用以下方式单独获取该地址(可能有更简单的方法):

ifconfig eth0 | grep HWaddr | awk '{ print $NF}' | sed 's/://g'

这将给你类似的内容6cf04954aaaa

这些都是应该它们是独一无二的,但并不总是如此。如果您的所有网络硬件都来自同一制造商,您可能会发现一些交叉,因此请小心处理。


如果失败的话,您可以生成自己的唯一字符串并将其存储在/etc/computer-id(或您选择的其他路径)中。

uuidgen -r

将生成尽可能随机的东西例如:52a85807-35fe-409e-8983-87eb58c02ece

uuidgen -t

使用时间和eth0的MAC来制作类似的东西:eb8280dc-b5ec-11e0-90dd-6cf04954aaaa

两者都相当独特,但与任何随机事物一样,总是存在发生冲突的可能性。保留一个中心列表以避免此类问题。

答案2

我能想到的最简单的解决方案是:

sudo dmidecode -s system-uuid

根据手册页dmidecode,该数据是从与 BIOS 有关的桌面管理界面检索的。它无法更改。

我在两台具有相同硬件的机器上测试了此命令,结果与名称预期的不同system-uuid,因此它实际上可以用作唯一的硬件哈希。

相关内容