UUID Generator
Understand UUID Generator
Gera identificadores UUID v4 ou UUID v7, um por vez ou até 100 de uma só vez.
How it works
Um UUID tem 128 bits, seis dos quais são fixados pelos campos de versão e variante, o que deixa 122 bits aleatórios em um v4 — seriam necessários cerca de 2,7 quintilhões deles até que uma colisão chegasse sequer a 50% de probabilidade. O v4 vem direto de crypto.randomUUID, então a aleatoriedade é a do CSPRNG da plataforma. Um v7 substitui os 48 bits iniciais pelo horário Unix atual em milissegundos e preenche os 74 restantes com aleatoriedade, o que faz os valores v7 se ordenarem por ordem de criação como simples strings.
When to use it
- Criar uma chave primária que o cliente pode gerar antes de a linha sequer ser enviada ao banco de dados.
- Marcar uma requisição ou um trace para que ele possa ser correlacionado entre vários serviços.
- Nomear arquivos enviados para que dois usuários não sobrescrevam um ao outro.
- Preencher uma fixture de teste que precisa de identificadores realistas e com certeza distintos.
- Escolher o v7 para uma tabela em que a ordem de inserção importa para a saúde do índice.
Watch out for
- UUID v4 como chave primária fragmenta índices B-tree. Cada inserção cai em um ponto aleatório do espaço de chaves, então o conjunto de trabalho passa a ser o índice inteiro em vez de sua ponta. v7 e ULID acrescentam ao fim, como um auto-incremento, e evitam o problema.
- Um UUID é impossível de adivinhar, mas não é autorização. Se um objeto é acessível por qualquer um que saiba o id dele, então é acessível por qualquer um que receba aquela URL — verifique as permissões também.
- O UUID v7 publica seu horário de criação. O timestamp fica no valor às claras, então qualquer um com o id sabe, com precisão de milissegundos, quando o registro foi criado. Use v4 onde isso for sensível.
- Guarde-o como 16 bytes onde o banco de dados permitir. Como char(36), um UUID custa mais que o dobro do espaço e cada comparação de índice percorre uma string em vez de comparar inteiros.
Not the right tool for: Códigos curtos que uma pessoa precisa ditar ou digitar. 36 caracteres é muita coisa para transcrever — um NanoID ou uma string aleatória do comprimento necessário se encaixa melhor.
Frequently Asked Questions
Qual é a diferença entre UUID v4 e v7?
O UUID v4 é gerado aleatoriamente, sem componente de tempo. O UUID v7 é ordenado por tempo (ordenável lexicograficamente), o que o torna melhor como chave primária de banco de dados, já que cria entradas sequenciais no índice.
Quão único é um UUID v4?
O UUID v4 tem 122 bits de aleatoriedade. A probabilidade de colisão ao gerar 1 bilhão de UUIDs é de aproximadamente 1 em 800 milhões — essencialmente impossível na prática.
Devo usar UUID como chave primária no banco de dados?
O UUID v4 pode causar fragmentação de índice em bancos de dados. UUID v7 ou ULID são escolhas melhores, pois são ordenados por tempo e inserem no fim do índice.
How to Use UUID Generator
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.