Gerador de UUID v4

5 de 2 avaliações
Gerador de UUID v4

O Gerador de UUID v4 é uma ferramenta gratuita que cria um Identificador Universalmente Único de versão 4 para identificar registros, objetos ou solicitações.

Como o Gerador de UUID v4 trata meus dados?

A geração ocorre no servidor. Os dados de entrada são enviados ao servidor por HTTPS e não são armazenados. Portanto, não seria correto afirmar que todo o processo acontece no seu navegador ou que os dados nunca saem do seu dispositivo.

Um UUID v4 não precisa de texto pessoal, nome ou senha como origem. Ele é gerado como identificador, e não calculado com base nas informações que você fornece. Evite atribuir um significado confidencial ao valor resultante, pois qualquer pessoa que consiga vê-lo poderá copiá-lo e reutilizá-lo.

O que é um UUID v4?

Um UUID v4 é um identificador de 128 bits cuja parte variável é gerada de forma aleatória ou pseudoaleatória. Alguns bits ficam reservados para indicar a versão e a variante do UUID. Ele é muito usado quando sistemas separados precisam criar identificadores sem antes consultar um serviço central para obter o próximo número disponível.

O formato textual padrão contém 32 caracteres hexadecimais, divididos em cinco grupos por hífens. Ele segue o padrão 8-4-4-4-12 e tem 36 caracteres quando os quatro hífens são incluídos.

Um exemplo sintaticamente válido é 550e8400-e29b-41d4-a716-446655440000. Em um UUID de versão 4, o primeiro caractere do terceiro grupo é 4. Os dois bits mais significativos que identificam a variante são 10, o que resulta em um caractere hexadecimal inicial 8, 9, a ou b no quarto grupo.

O valor é um identificador, não uma informação codificada. Não é possível decodificá-lo para recuperar uma data de criação, um nome de conta, um endereço de máquina ou um número sequencial.

Qual versão de UUID devo escolher?

Escolha a versão 4 quando precisar de um identificador opaco, gerado de forma independente, e não quiser que a mesma entrada sempre produza o mesmo resultado. Em resumo, a v1 usa informações de tempo e do nó, a v2 é o formato DCE Security, a v3 deriva um UUID de um namespace e de um nome usando MD5, a v4 é aleatória, a v5 faz essa derivação usando SHA-1, a v6 reorganiza dados baseados em tempo, a v7 combina um timestamp Unix com dados aleatórios e a v8 se destina a formatos experimentais ou específicos de fornecedores.

  • Use UUID v4 para IDs de registros, referências de uploads, IDs de solicitações de API e dados de teste quando identificadores distribuídos aleatoriamente forem adequados.
  • Use UUID v5 quando um namespace e um nome específicos precisarem gerar sempre o mesmo identificador. Ele é útil para importações repetíveis e regras de deduplicação.
  • Considere o UUID v7 quando os registros precisarem de identificadores que acompanhem, de modo geral, a ordem de criação e seu banco de dados ou software for compatível com essa versão.
  • Use um número inteiro sequencial comum quando os valores forem criados por um único banco de dados e chaves compactas e naturalmente ordenadas forem mais importantes do que a geração descentralizada.

Versões mais antigas continuam presentes em sistemas existentes, mas um projeto novo deve escolher a versão de acordo com suas necessidades reais, em vez de tratar todas as versões de UUID como equivalentes.

Exemplo de resultado gerado pela ferramenta Gerador de UUID v4

Como usar UUID v4 na prática

Gere um UUID, copie o valor do campo de resultado UUID v4 e armazene a string canônica completa, a menos que o sistema de destino especifique outra representação.

  1. Crie um novo UUID para o objeto ou evento que precisa de uma identidade.
  2. Mantenha os cinco grupos e os quatro hífens ao transferi-lo entre sistemas.
  3. Armazene-o em um tipo UUID do banco de dados, se houver essa opção. Caso contrário, use um campo de texto ou binário dimensionado para a representação escolhida.
  4. Adicione uma restrição de unicidade quando o banco de dados precisar rejeitar valores UUID v4 duplicados.
A ferramenta Gerador de UUID v4 no digily.link, com o formulário de entrada

Entre os usos comuns estão identificar um pedido antes que ele chegue ao banco de dados principal, correlacionar entradas de log entre vários serviços, nomear um objeto enviado ou atribuir IDs estáveis a linhas preparadas para importação. Em geral, UUIDs facilitam a mesclagem de conjuntos de dados criados de forma independente em comparação com sequências locais de números inteiros, que podem conter os mesmos valores em cada origem.

Espaços, sinais de pontuação, letras acentuadas e caracteres não latinos não causam problemas de entrada para UUID v4, pois o processo de geração não deriva o identificador de um texto. Se você precisar de um identificador baseado em um nome que contenha esses caracteres, use um esquema de UUID baseado em nome e defina exatamente as regras de codificação e normalização de caracteres. Caso contrário, textos visualmente idênticos podem produzir sequências de bytes diferentes e, consequentemente, identificadores distintos.

Dois UUIDs v4 podem ser iguais?

Sim, uma colisão é teoricamente possível, mas não representa uma preocupação prática no uso comum de UUID v4 quando a geração utiliza uma fonte aleatória adequada. Um UUID v4 tem 122 bits variáveis, pois os demais bits identificam sua versão e variante. Isso deixa um conjunto extremamente grande de valores possíveis.

Portanto, "universalmente único" é uma descrição prática, não uma garantia matemática. Valores copiados ou reutilizados por engano, falhas de implementação ou uma geração deficiente de números aleatórios quando a fonte não é adequada podem representar riscos de duplicação mais realistas do que o puro acaso. Sistemas que não podem aceitar duplicatas ainda devem impor a unicidade no banco de dados ou na camada da aplicação.

Um UUID também não comprova que uma solicitação é legítima. Não use apenas um UUID visível como autorização e não presuma que um objeto está protegido simplesmente porque seu endereço é difícil de adivinhar. As verificações de acesso devem ser aplicadas ao recurso subjacente identificado pelo UUID.

Perguntas frequentes

UUID diferencia letras maiúsculas de minúsculas?

Não. As letras hexadecimais em um UUID textual normalmente são interpretadas sem distinção entre maiúsculas e minúsculas, portanto A e a representam o mesmo valor. A forma canônica costuma usar letras minúsculas. Normalizar as letras antes de comparar os textos evita resultados inconsistentes em sistemas que diferenciam maiúsculas de minúsculas na comparação de strings.

Posso usar um UUID v4 em uma URL ou nome de arquivo?

Sim. O formato canônico usa caracteres hexadecimais e hífens, todos adequados para segmentos comuns de caminhos de URL e para sistemas de arquivos usuais. Evite adicionar chaves, a menos que uma API específica exija isso, e lembre-se de que expor um UUID em uma URL não torna o recurso privado.

Devo remover os hífens de um UUID?

Remova-os apenas quando o formato de destino exigir explicitamente 32 caracteres hexadecimais. Muitas bibliotecas e tipos UUID de bancos de dados aceitam o formato canônico com hífens, que é mais fácil de reconhecer e tem menos chance de ser confundido com outro valor hexadecimal sem relação.

UUID v4 serve como senha ou segredo de API?

Não. Identificadores e segredos têm finalidades diferentes. Algumas implementações de UUID podem usar uma fonte aleatória adequada, mas o formato UUID em si não garante os requisitos de tratamento, sigilo ou entropia de senhas, tokens de sessão e credenciais de API. Gere credenciais ou tokens com um mecanismo criado para essa finalidade, não com um Gerador de UUID v4.

UUID v4 pode ser considerado dado pessoal pelo UK GDPR?

Sim. Ele pode ser considerado dado pessoal quando identifica ou pode ser associado a uma pessoa identificável, mesmo que seus caracteres não revelem diretamente um nome. Trate UUIDs vinculados a contas de clientes, dispositivos ou registros de atividade de acordo com o contexto e com as regras de retenção e acesso da organização.

Posso usar UUID v4 como chave primária no banco de dados?

Sim. Muitos bancos de dados oferecem suporte direto a UUIDs como chaves primárias. Chaves distribuídas aleatoriamente podem gerar inserções menos localizadas no índice do que números inteiros ordenados ou identificadores baseados em tempo. Por isso, consulte as orientações do banco de dados para tabelas com muitas operações de escrita. Mantenha uma restrição de unicidade e use uma única representação de armazenamento de forma consistente em importações, consultas e no código da aplicação.

Ferramentas populares