🐬

GUIDとUUIDの違い

2021/12/30に公開

GUID と UUID の違いが気になったので調べてみた。

結論

世界中で重複することがない、ユニークな128bitのランダムな数値であるという点は同じであるが、別物。

GUIDは、Globally Unique IDentifierの略称であり、Microsoftが提唱知ているdata type。
任意の場所に16進数を扱うことができるid。
全て大文字。

example-guid
3297F0F2-35D3-4231-919D-1CFCF4035975
Document
The valid format for a GUID is {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} where X is a hex digit (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).

一方で、UUIDUniversally Unique Identifierの略称であり、RFC4122で定義されているdata type。
versionvariantのフィールドを持つ。
全て小文字であり、大文字の入力は受け付けるが区別されず、小文字として吐き出される。

example-uuid
f700105f-0037-47b6-816a-594b08b43c6d
Document
      UUID                   = time-low "-" time-mid "-"
                               time-high-and-version "-"
                               clock-seq-and-reserved
                               clock-seq-low "-" node
      time-low               = 4hexOctet
      time-mid               = 2hexOctet
      time-high-and-version  = 2hexOctet
      clock-seq-and-reserved = hexOctet
      clock-seq-low          = hexOctet
      node                   = 6hexOctet
      hexOctet               = hexDigit hexDigit
      hexDigit =
            "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
            "a" / "b" / "c" / "d" / "e" / "f" /
            "A" / "B" / "C" / "D" / "E" / "F"

使い所

win系のシステムでなけれ、意識せずuuidを使えば問題ない。

参考

https://docs.microsoft.com/en-us/windows/win32/msi/guid
https://www.rfc-editor.org/rfc/rfc4122#section-3
https://stackoverflow.com/questions/246930/is-there-any-difference-between-a-guid-and-a-uuid

Discussion