我正在使用多个运行raspian(Debian)的Raspberry Pis来处理我正在进行的项目。我希望每个Raspberry Pi都有一个唯一的ID,以便我可以在网络上区分它们。
我认为g ++库< uuid / uuid.h>可能是实现此目的的最佳方式,Pi将在第一次启动时通过守护程序生成并存储UUID。
但是,我计划创建一个库存安装映像,并在每次向网络添加一个时将其加载到新的覆盆子Pi上。据我所知,UUID生成部分基于系统时间,因为我将为所有这些使用相同的图像,它们可能都具有相同的系统时间。 (它们可能会在他们获得任何类型的互联网时间之前被启动。)
这对UUID生成的唯一性有多大影响?
答案 0 :(得分:1)
通常,有几种不同的方法来生成guid / uuid。根据{{3}},有5种不同的方法来生成它们。
除此之外,某些CPU还有一条指令告诉CPU提供其序列号。许多OEM机器在BIOS中有一个区域,其中包含机器的序列号。因此,任何这些都可以用作生成guid / uuid的源。由于您运行的是Linux,因此您可以编写自己的例程来生成这些例程。
如果您计划使用机器特有的东西(例如网络MAC地址),我会将其与当前时间相结合并将其哈希几次,因为这会导致隐私漏洞。正是这个隐私漏洞让当局找到了Melissa病毒的作者。
此外,还有UUID Wikipedia article详细说明了这一点。