Gerador de UUID v4
Crie UUIDs versão 4 aleatórios com o gerador de números aleatórios seguro do seu navegador, um de cada vez ou em lote.
Gerar UUIDs aleatórios versão 4
A versão 4 é o UUID que a maioria das pessoas tem em mente quando fala em “um UUID”. Ela não carrega carimbo de tempo, endereço de máquina nem nome, apenas 122 bits aleatórios, o que permite gerá-la em qualquer lugar sem coordenação: em um navegador, em um celular ou em mil servidores ao mesmo tempo.
Esta página abre o Gerador de UUID com a versão 4 selecionada e um primeiro UUID já gerado.
Anatomia de um UUID v4
Pegue f47ac10b-58cc-4372-a567-0e02b2c3d479. O 4 que abre o terceiro grupo é a versão. O primeiro dígito do quarto grupo, aqui a, é sempre 8, 9, a ou b, porque os dois bits mais altos dele guardam a variante. Todos os outros dígitos hexadecimais são aleatórios.
Qual é a chance de uma colisão?
| UUIDs gerados | Chance de alguma duplicata |
|---|---|
| 1 bilhão (10^9) | cerca de 1 em 10 quintilhões |
| 1 trilhão (10^12) | cerca de 1 em 10 trilhões |
| 2,7 quintilhões (2,7 × 10^18) | cerca de 50% |
Esses números pressupõem uma boa fonte de aleatoriedade. É por isso que este gerador usa crypto.getRandomValues em vez de Math.random, que não foi feito para garantir unicidade.
v4 ou v7?
UUIDs aleatórios espalham as linhas novas pelo índice do banco de dados, o que pode deixar as inserções mais lentas em tabelas muito grandes. Se os seus UUIDs são chaves primárias em um banco movimentado, considere o UUID v7, que começa com um carimbo de tempo para que os valores novos fiquem em ordem. Para tokens, IDs de correlação e nomes de arquivo, o v4 continua sendo o padrão simples.
Gerando v4 em código
- JavaScript:
crypto.randomUUID() - Python:
import uuid; uuid.uuid4() - Java:
UUID.randomUUID() - C#:
Guid.NewGuid() - PostgreSQL 13+:
gen_random_uuid() - Shell do Linux:
cat /proc/sys/kernel/random/uuid
Se a sua plataforma chama esses valores de GUIDs e quer chaves ou maiúsculas, a página do Gerador de GUID já vem com essas opções ativadas.