UUID decoder

The Randogram UUID decoder takes an identifier apart: it shows the version, the variant and whatever is built into it — the creation time, the node address and the clock sequence.
Decoding happens right in the browser: the identifier is never sent anywhere. A UUID is 128 bits written in 32 hexadecimal characters, and some of those bits are taken up by the version and variant fields. What can be read from the rest depends on the version: versions 1 and 6 carry the creation time at 100-nanosecond resolution, a clock sequence and a node address, version 7 carries Unix time in milliseconds, version 4 is random apart from the service bits, and versions 3 and 5 are a hash from which the original name cannot be recovered. All the common written forms are accepted: with dashes, in braces, as urn:uuid: and simply 32 characters in a row.

Questions and answers

What can be learned from a UUID?
The version and the variant — they are written into the identifier itself — and whatever the remaining bits hold. That depends on the version: versions 1 and 6 give up the creation time at 100-nanosecond resolution, a clock sequence and a node address, version 7 gives Unix time in milliseconds. Version 4 is random apart from the service bits, so there is nothing to learn from it. Versions 3 and 5 are a hash of a name, and the original name cannot be recovered from it — that is what a hash is for.
Is the identifier sent to the server?
No. Decoding runs in the browser in JavaScript: the pasted value never leaves your machine, never reaches the server logs and is not stored anywhere. For the same reason the decoder keeps working without a connection once the page is open.
Which written forms are accepted?
All the common ones: canonical groups separated by dashes, the form in braces, an address like urn:uuid: and simply 32 hexadecimal characters in a row. Case does not matter. Only the written form is checked — the decoder cannot tell you whether your own system issued this particular identifier.
Why is the node address not a MAC address?
The specification allows random bits with the multicast bit raised in place of a network card address. Most libraries do exactly that: a real MAC address would disclose the machine on which the identifier was created. The decoder marks such a node — on a real network card address the multicast bit is clear.