Universally Unique Identifier (UUID)

Introduction

A Universally Unique Identifier (UUID) is a 128-bit label used for information in computer systems. The term Globally Unique Identifier (GUID) is also used, mostly in Microsoft systems.

When generated according to the standard methods, UUIDs are, for practical purposes, unique. Their uniqueness does not depend on a central registration authority or coordination between the parties generating them, unlike most other numbering schemes. While the probability that a UUID will be duplicated is not zero, it is generally considered close enough to zero to be negligible.

Thus, anyone can create a UUID and use it to identify something with near certainty that the identifier does not duplicate one that has already been, or will be, created to identify something else. Information labeled with UUIDs by independent parties can therefore be later combined into a single database or transmitted on the same channel, with a negligible probability of duplication.

Adoption of UUIDs is widespread, with many computing platforms providing support for generating them and for parsing their textual representation.

List of implemented UUID types:

  • UUID Version 1: the time-based version with gregorian epoch specified in RFC-4122;
  • UUID Version 2: the DCE Security version with embedded POSIX UIDs specified in DCE 1.1;
  • UUID Version 3: the name-based version that uses MD5 hashing specified in RFC-4122;
  • UUID Version 4: the randomly or pseudo-randomly generated version specified in RFC-4122;
  • UUID Version 5: the name-based version that uses SHA-1 hashing specified in RFC-4122;
  • UUID Version 6: the time-ordered version with gregorian epoch proposed as new UUID format;
  • UUID Version 7: the time-ordered version with Unix epoch proposed as new UUID format.

Example