Gerar valores UUID v4 aleatórios
Um UUID versão 4 é um valor de 128 bits em que 122 bits vêm de uma fonte aleatória criptograficamente segura. Os 6 bits restantes indicam a versão e a variante RFC; por isso todo UUID v4 tem um 4 no início do terceiro grupo.
Exemplo resolvido
- Bytes aleatórios de entrada
- 9d 41 7c 02 e8 5b 13 f6 2a 7e c1 94 06 d3 b8 5f
- Resultado
- 9d417c02-e85b-43f6-aa7e-c19406d3b85f
| UUIDs gerados | Probabilidade de pelo menos uma duplicata |
|---|---|
| 10⁶ | ≈ 9,4 × 10⁻²⁶ |
| 10⁹ | ≈ 9,4 × 10⁻²⁰ |
| 10¹² | ≈ 9,4 × 10⁻¹⁴ |
| 10¹⁵ | ≈ 9,4 × 10⁻⁸ |
UUIDs necessários para 50% de chance de duplicata: ≈ 2,71 × 10¹⁸
Como funciona
- O gerador preenche 16 bytes com dados aleatórios seguros e depois define o nibble alto do byte 6 como 4 (versão) e os dois bits mais altos do byte 8 como 10 (variante). Assim, o terceiro grupo começa com 4 e o quarto com 8, 9, a ou b.
- Com 2¹²² valores possíveis, a aproximação do aniversário p ≈ 1 − e^(−n²/2¹²³) dá a probabilidade de n UUIDs aleatórios conterem pelo menos uma duplicata.
- Um UUID v4 não revela carimbo de data/hora nem dados de hardware. Use-o como identificador, não como senha ou segredo de autenticação.
Gere de 1 a 100 UUIDs de uma vez
Sobre UUIDs
UUID v1: UUIDs baseados em tempo que incluem um carimbo de data/hora e o endereço MAC do computador que gera o UUID. Útil quando você precisa saber quando o UUID foi criado.
UUID v4: UUIDs gerados aleatoriamente. Esta é a versão mais comumente usada e fornece boa exclusividade com vazamento mínimo de informações.
UUID v5: UUIDs baseados em nome usando hash SHA-1. Dado o mesmo namespace e nome, você sempre obterá o mesmo UUID. Útil para geração determinística de UUID.