uuid -v4和uuidgen有什么区别?

9

我正在为githooks创建一些Jenkins令牌,我正在使用uuidgen

我的同事说他们通常使用uuid -v4,在经过sudo apt-get安装uuid之后,uuid -v4uuidgen看起来是一样的:

$ uuid -v4
832dce77-ddec-4cc5-9872-47a81456653f
$ uuidgen
a321bc87-a1b5-4cc5-b6b5-feaf3a610ab8

供参考:我正在Ubuntu系统上运行。

它们之间有什么区别?它们是相同的吗?


你用的是什么操作系统?例如,uuidgen 在OSX和FreeBSD上有不同的默认行为... - BurnsBA
我编辑了问题以包含操作系统信息。 - Wimateeka
2个回答

8
简而言之,它们都是随机的,因为 uuidgen == uuidgen -r == uuid -v4。虽然man 1 uuidgen没有明确说明,但是按照ISO / IEC 11578:1996规定,uuidgen -tuuidgen -r分别生成版本1(基于时间和节点)和版本4(基于随机数据)的UUID。
$ { uuidgen -t && uuidgen -r && uuid -v1 && uuid -v4 ; } | xargs -L1 uuid -d

encode: STR:     5f441c74-c63a-11e7-8cb0-0242ac110002
        SIV:     126630312945231364299766443008257490946
decode: variant: DCE 1.1, ISO/IEC 11578:1996
        version: 1 (time and node based)
        content: time:  2017-11-10 17:12:46.679154.0 UTC
                 clock: 3248 (usually random)
                 node:  02:42:ac:11:00:02 (local unicast)
encode: STR:     d70f042a-c5ca-4726-b259-795e47fd1b95
        SIV:     285861988065069261246745478758429170581
decode: variant: DCE 1.1, ISO/IEC 11578:1996
        version: 4 (random data based)
        content: D7:0F:04:2A:C5:CA:07:26:32:59:79:5E:47:FD:1B:95
                 (no semantics: random data only)
encode: STR:     5f443b5a-c63a-11e7-8cd2-0242ac110002
        SIV:     126630939639996852130686378090112811010
decode: variant: DCE 1.1, ISO/IEC 11578:1996
        version: 1 (time and node based)
        content: time:  2017-11-10 17:12:46.679945.0 UTC
                 clock: 3282 (usually random)
                 node:  02:42:ac:11:00:02 (local unicast)
encode: STR:     09432e97-a1fc-4e05-9492-7c0c11ec0abc
        SIV:     12311880856012488273304867468361861820
decode: variant: DCE 1.1, ISO/IEC 11578:1996
        version: 4 (random data based)
        content: 09:43:2E:97:A1:FC:0E:05:14:92:7C:0C:11:EC:0A:BC
                 (no semantics: random data only)

References:


1
对于Mac用户而言:macOS上的BSD uuidgen程序生成UUID v4
示例:
$ uname
Darwin

$ uuidgen
703849AD-8549-4666-8904-E9AEA8406156

该工具的手册没有说明,但请注意此示例中第三组字符开头的4。这表示UUID的v4版本,如UUID维基百科页面所述,或者您可以使用一些工具进行验证,例如uuidtools.com

1
注意,此版本的 uuidgen 除了 -hdr 选项外不接受任何其他选项,该选项生成 C 预处理器代码而不是字符串表示形式。您可以使用 Homebrew 安装 OSSP uuid 程序(brew install ossp-uuid)。 - Mark Reed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接