O que é um UUID curto?
Um UUID curto carrega a mesma quantidade de aleatoriedade de um UUID comum, mas a escreve com um alfabeto mais denso. Assim, 16 bytes de sorteio viram 22 caracteres em vez de 36, com a mesma unicidade.
Há também variantes menores: 8 bytes geram 11 caracteres (64 bits) e 12 bytes geram 16 caracteres (96 bits). O comprimento se ajusta ao que você realmente precisa, por exemplo quando o identificador vai ficar visível em uma URL.
Como usar
- Escolha o comprimento em Bytes de aleatoriedade.
- Informe a quantidade de identificadores.
- Clique em Gerar e copie os valores.
Casos de uso
- Links curtos e tokens de compartilhamento em URLs.
- Identificadores de sessão e de cookie com espaço contado.
- Nomes de arquivo que não devem carregar o comprimento inteiro de um UUID.
As versões de UUID em resumo
| Versão | Ordenável | Baseada em | Use para |
|---|---|---|---|
| v1 | Não | Carimbo de tempo + endereço MAC | Sistemas antigos que ainda esperam v1 |
| v3 | Não | Hash MD5 de um nome | Identificadores determinísticos quando MD5 é exigido |
| v4 | Não | 122 bits aleatórios | Praticamente qualquer identificador de uso geral |
| v5 | Não | Hash SHA-1 de um nome | Quando o mesmo nome precisa dar sempre o mesmo ID |
| v6 | Sim | Carimbo de tempo reordenado | Identificadores ordenáveis sem abrir mão do aleatório |
| v7 | Sim | Tempo Unix em milissegundos | Chaves primárias de banco e IDs de eventos |
| v8 | Não | Seu próprio layout de bits | Formatos de fabricante ou experimentais |
As sete versões têm 128 bits e são escritas no mesmo formato 8-4-4-4-12. Só o significado dos bits muda.
Perguntas frequentes
Isso ainda é um UUID?
No sentido estrito, não: um UUID tem exatamente 128 bits e uma escrita canônica. A variante de 16 bytes carrega a mesma aleatoriedade, mas não tem campo de versão nem de variante, porque o Base64url não os representa.
Por que Base64url e não Base62?
Porque o Base64url funciona sem escape em URLs e nomes de arquivo e se limita aos caracteres seguros - e _. Um alfabeto Base62 próprio só acrescentaria complexidade.
Qual o risco de colisão?
Com 16 bytes, tão baixo quanto o de um UUID. Com 8 bytes ele é maior: para identificadores gerados em grande quantidade, prefira a variante de 16 bytes.