.. _rfc4122: ============== RFC 4122 UUIDs ============== .. toctree:: :titlesonly: :hidden: rfc4122/version1 rfc4122/version2 rfc4122/version3 rfc4122/version4 rfc4122/version5 `RFC 4122`_ defines five versions of UUID. Each version has different generation algorithms and properties. Which one you choose to use depends on your use-case. You can find out more about their applications on the specific page for that version. Version 1: Time-based This version of UUID combines a timestamp, node value (in the form of a MAC address from the local computer's network interface), and a clock sequence to ensure uniqueness. For more details, see :doc:`rfc4122/version1`. Version 2: DCE Security This version of UUID is the same as Version 1, except the ``clock_seq_low`` field is replaced with a *local domain* and the ``time_low`` field is replaced with a *local identifier*. For more details, see :doc:`rfc4122/version2`. Version 3: Name-based (MD5) This version of UUID hashes together a namespace and a name to create a deterministic UUID. The hashing algorithm used is MD5. For more details, see :doc:`rfc4122/version3`. Version 4: Random This version creates a UUID using truly-random or pseudo-random numbers. For more details, see :doc:`rfc4122/version4`. Version 5: Named-based (SHA-1) This version of UUID hashes together a namespace and a name to create a deterministic UUID. The hashing algorithm used is SHA-1. For more details, see :doc:`rfc4122/version5`. .. _RFC 4122: https://tools.ietf.org/html/rfc4122