Data :: GUID是否生成有效的GUID?

src*_*ulo 3 perl uuid guid

我使用Data :: GUID生成GUID.但是,每当我在同一个"会话"中生成GUID,即运行脚本时,唯一更改的数字就是前面的数字:

3BAF1240-0573-11E4-B31C-B8EC0EDF341C
3BAF1588-0573-11E4-B31C-B8EC0EDF341C
3BAF1678-0573-11E4-B31C-B8EC0EDF341C
Run Code Online (Sandbox Code Playgroud)

第一组数字是唯一一组有变化的数字.如果我再次运行脚本,那么其余的数字略有不同,但第二组和第三组数字仍然相同:

E5D3A59C-0573-11E4-AA07-A5F15201CE1F
E5D3A920-0573-11E4-AA07-A5F15201CE1F
E5D3A9C0-0573-11E4-AA07-A5F15201CE1F
Run Code Online (Sandbox Code Playgroud)

但同样,唯一不断变化的值是在第一组数字中.这与我在C#中生成GUID时得到的结果非常不同,我认为GUID应该是随机的,那么为什么只有前面的数字集会改变?我可以使用作为GUID生成的GUID吗?

oog*_*oga 6

不更改的部分基于您的MAC地址.这由1表示为第3组的第一个数字.其余的位基于当前时间,这就是为什么它们不会发生很大变化的原因.

这些数字当然不需要是随机的.他们只需要匹配另一个GUID的概率极低.MAC地址和当前时间(版本1算法)的组合做得相当好,尽管还有其他算法(例如版本4是随机的).

http://en.wikipedia.org/wiki/Globally_unique_identifier
http://en.wikipedia.org/wiki/Universally_unique_identifier