Gerador de UUID
Gere identificadores aleatórios versão 4, no formato que você precisar.
Identificadores
A aleatoriedade vem da fonte criptográfica do navegador, e nada é enviado.
Como funciona
Um UUID é um identificador de 128 bits, escrito como 32 caracteres hexadecimais em cinco grupos separados por hifens.
A versão 4 é aleatória, exceto seis bits que registram a versão e a variante. Sobram 122 bits aleatórios, ou mais de cinco undecilhões de valores possíveis, ou seja 5,3 × 10³⁶.
Com tantas possibilidades nenhuma autoridade central precisa distribuir identificadores. Dois sistemas podem gerar um cada sem consultar o outro, e a chance de colisão é desprezível.
A aleatoriedade vem da fonte criptográfica do navegador, que existe justamente para valores que precisam ser impossíveis de adivinhar.
Os formatos com maiúsculas ou chaves vêm do mundo Windows. É o mesmo identificador, só escrito de outro jeito.
Como os identificadores são criados
A ferramenta chama crypto.randomUUID, do navegador, que pela Web Cryptography API do W3C cria um UUID versão 4 a partir de bytes aleatórios criptograficamente seguros. Em navegadores antigos sem essa função, a ferramenta preenche 16 bytes com crypto.getRandomValues e depois sobrescreve seis bits: a metade superior do sétimo byte vira 0100, que indica a versão 4, e os dois bits mais altos do nono byte viram 10, que marcam a variante. São criados até 100 identificadores por vez. As opções de maiúsculas, chaves e hifens mudam só a forma de escrever os valores, não os valores em si.
Como reconhecer a versão 4
Os bits fixos aparecem no texto. O primeiro caractere do terceiro grupo é sempre 4. O primeiro caractere do quarto grupo é 8, 9, a ou b, porque só dois dos seus quatro bits são fixos. Em c3431ee8-4dd9-4038-b998-71210a2ffb2b, gerado com o código da ferramenta, esses caracteres são 4 e b. Se houver outra coisa nessas posições, o identificador não é versão 4. A RFC 9562 permite escrever as letras em maiúsculas, em minúsculas ou misturadas.
Casos-limite
Um UUID é um identificador, não um segredo. A RFC 9562 recomenda que as implementações não presumam que UUIDs são difíceis de adivinhar e proíbe usá-los como credenciais de segurança, identificadores cuja simples posse dá acesso. Um link de redefinição de senha precisa de um token feito para isso.
Como chave de banco de dados, a versão 4 tem uma desvantagem que o próprio padrão aponta: valores criados em sequência ficam longe uns dos outros no índice, então cada linha nova é inserida numa posição aleatória. A versão 7 começa com um carimbo de tempo e por isso fica ordenada na ordem em que os valores foram criados. A ferramenta cria só a versão 4.
Dois valores têm nome próprio no padrão: o UUID nil, só com zeros, e o UUID max, só com f. Nenhum dos dois pode sair da ferramenta, porque os bits de versão e de variante estão sempre definidos.