There are three types of UUIDs which uuidgen can generate: time-based UUIDs, random-based UUIDs, and hash-based UUIDs. By default uuidgen will generate a random-based UUID if a high-quality random number generator is present. Otherwise, it will choose a time-based UUID. It is possible to force the generation of one of these first two UUID types by using the --random or --time options.
The third type of UUID is generated with the --md5 or --sha1 options, followed by --namespace namespace and --name name. The namespace may either be a well-known UUID, or else an alias to one of the well-known UUIDs defined in RFC 4122, that is @dns, @url, @oid, or @x500. The name is an arbitrary string value. The generated UUID is the digest of the concatenation of the namespace UUID and the name value, hashed with the MD5 or SHA1 algorithms. It is, therefore, a predictable value which may be useful when UUIDs are being used as handles or nonces for more complex values or values which shouldn't be disclosed directly. See the RFC for more information.
- -r, --random
- Generate a random-based UUID. This method creates a UUID consisting mostly of random bits. It requires that the operating system have a high quality random number generator, such as /dev/random.
- -t, --time
- Generate a time-based UUID. This method creates a UUID based on the system clock plus the system's ethernet hardware address, if present.
- -h, --help
- Display help text and exit.
- -V, --version
- Display version information and exit.
- -m, --md5
- Use MD5 as the hash algorithm.
- -s, --sha1
- Use SHA1 as the hash algorithm.
- -n, --namespace namespace
- Generate the hash with the namespace prefix. The namespace is UUID, or '@ns' where "ns" is well-known predefined UUID addressed by namespace name (see above).
- -N, --name name
- Generate the hash of the name.
- -x, --hex
- Interpret name name as a hexadecimal string.