Universally Unique IDentifier

Defined at RFC4122


  1. Generating a UUID does not require a registration authority
  2. UUIDs are inherently very difficult to resolve in a global sense.
    That is, given a UUID, determining who or what it belongs to is difficult.
  3. Generating UUID using one of three algorithms

    Using the timestamp / nodeid version (version 1), where the nodeid comes from network equipment (Like a UUID generated using the uuidgen -t command.)

    version 1 time-based 2 DCE Security , with embedded POSIX UIDs. 3 name-based uses MD5 hashing. 4 randomly or pseudo-randomly generated 5 name-based uses SHA-1 hashing.

    Time Based

    UUID = time_low
    - time_mid
    - version + time_high
    - clock_seq + reserved + clock_seq_low
    - node
    by hexDigits
    llllllll-mmmm-vhhh- rcll - nnnnnnnnnnnn
                                8 Octets (Bytes) total
    time_low                    4 hexOctets                          6A3C6342
    time_mid                    2 hexOctets                          D97C
    version_and_time_high       2 hexOctets   
                   v              hexDigit                           1
                    hhh           hexDigit+hexOctet                  1DB
    The timestamp is a 60-bit value.
    For UUID version 1, this is represented by Coordinated Universal Time (UTC)
    as a count of 100-nanosecond intervals since 00:00:00.00, 15 October 1582
    (The date of Gregorian reform to the Christian calendar).
    clock_seq_high + reserved    1 hexOctet                             
     reserved                 3 bits !  (aka variant aka type )
                              0-7 NCS ; backward compatibility
                              8-B current variant of UUID;        8 
                              C-D Microsoft
                              E-F furture
    clock_seq_high            bit + hexDigit                      3
    clock_seq_low             hexOctet                            14
    node                      6 hexOctet                          0800200C9A66
    hexOctet (aka byte)     = hexDigit hexDigit
    hexDigit                = 0 : F
    see RFC4122 section 4.3 for generation of Name Based UUIDs, Section 4.4 for using random numbers.

    Generate your own version:1 (time based) UUID at Famkruithof.net/uuid/uuidgen

    Extract the time from a version 1 UUID

    In Addition generate UUIDs and display them as OIDs at itu.int/ITU-T/asn1/uuid.html
    For example UUIDe36abc20-dbfd-11e5-ba7e-0002a5d5c51b OID 2.25.302288954206570441749496791616059720987


    The OID repository is at OID-INFO.COM

    OID repository entry for UUID

    Some Examples

    --- Winsock Layered Service Provider list ---
     MSAFD Tcpip [TCP/IP]
    GUID: {E70F1AA0-AB8B-11CF-8CA3-00805F48A192}
     NT/2k/XP IP protocol
    DB  %SystemRoot%\system32\mswsock.dll               DB protocol: MSAFD Tcpip[*]
     MSAFD Tcpip [RAW/IP]
     RSVP UDP Service Provider
    GUID: {9D60A9E0-337A-11D0-BD88-0000C082E69A}
     NT/2k/XP RVSP
    DB  %SystemRoot%\system32\rsvpsp.dll                DB protocol: RSVP * Service Provider
     RSVP TCP Service Provider
     MSAFD nwlnkipx [IPX]
    GUID: {11058240-BE47-11CF-95C8-00805F48A192}
     NT/2k/XP Novell Netware UPX protocol
    DB  %SystemRoot%\system32\mswsock.dll           DB protocol: MSAFD nwlnkipx *
     MSAFD nwlnkspx [SPX]
    GUID: {11058241-
     MSAFD nwlnkspx [SPX] [Pseudo Stream] 
     MSAFD nwlnkspx [SPX II] 
     MSAFD nwlnkspx [SPX II] [Pseudo Stream]
     MSAFD NetBIOS [\Device\NwlnkNb] SEQPACKET 3
    GUID: {8D5F1830-C273-11CF-95C8-00805F48A192}
    8D5F1830-C273-11CF was generated on: Mon, 10 Jun 1996 03:52:56 +0000
    %SystemRoot%\system32\mswsock.dll NT/2k/XP NetBios protocol DB %SystemRoot%\system32\mswsock.dll DB protocol: MSAFD NetBIOS * MSAFD NetBIOS [\Device\NwlnkNb] DATAGRAM 3 MSAFD NetBIOS [\Device\NetBT_Tcpip_{5E9F90A2-3DAC-477B-AE25-81B8ED1CE696}] SEQPACKET 0 MSAFD NetBIOS [\Device\NetBT_Tcpip_{5E9F90A2-3DAC-477B-AE25-81B8ED1CE696}] DATAGRAM 0 MSAFD NetBIOS [\Device\NetBT_Tcpip_{FBC2E32E-ABD0-4C56-AD81-8F947E1D3172}] SEQPACKET 1 MSAFD NetBIOS [\Device\NetBT_Tcpip_{FBC2E32E-ABD0-4C56-AD81-8F947E1D3172}] DATAGRAM 1 MSAFD NetBIOS [\Device\NetBT_Tcpip_{DC584667-773B-4D03-84F4-C834EEB4612E}] SEQPACKET 2 MSAFD NetBIOS [\Device\NetBT_Tcpip_{DC584667-773B-4D03-84F4-C834EEB4612E}] DATAGRAM 2 Namespace Provider 0: Tcpip GUID: {22059D40-7E9E-11CF-AE5A-00AA00A7112B} %SystemRoot%\System32\mswsock.dll NT/2k/XP TCP/IP name space provider DB %SystemRoot%\system32\mswsock.dll DB protocol: TCP/IP Namespace Provider 1: NTDS GUID: {3B2637EE-E580-11CF-A555-00C04FD8D4AC} %SystemRoot%\System32\winrnr.dll NT/2k/XP name space provider DB %SystemRoot%\system32\winrnr.dll DB protocol: NTDS Namespace Provider 2: Network Location Awareness (NLA) Namespace GUID: {6642243A-3BA8-4AA6-BAA5-2E0BD71FDD83} %SystemRoot%\System32\mswsock.dll NT/2k/XP name space provider DB %SystemRoot%\system32\mswsock.dll DB protocol: NLA-Namespace Namespace Provider 3: NWLink IPX/SPX/NetBIOS Compatible Transport Protocol GUID: {E02DAAF0-7E9F-11CF-AE5A-00AA00A7112B} %SystemRoot%\System32\nwprovau.dll NT/2k/XP Novell Netware name space provider DB %SystemRoot%\system32\nwprovau.dll DB protocol: NWLink IPX/SPX/NetBIOS*

    Obtaining a PrivateEnterpriseNumber from IANA