Gerador de UUID v4

5 de 2 avaliações

O Gerador de UUID v4 é uma ferramenta gratuita que cria um Identificador Universalmente Único de versão 4, para usar como identificador de um registo, objeto ou pedido.

Como é que o Gerador de UUID v4 trata os meus dados?

A geração é efetuada no servidor. Os dados introduzidos são enviados para o servidor através de HTTPS e não são armazenados. Por isso, não seria correto afirmar que a geração ocorre inteiramente no teu navegador ou que os dados nunca saem do teu dispositivo.

Um UUID v4 não precisa de texto pessoal, nomes ou palavras-passe como dados de origem. É gerado como identificador, não calculado a partir das informações que forneces. Evita associar informações confidenciais ao valor obtido, pois qualquer pessoa que o veja pode 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. É frequentemente utilizado quando sistemas distintos precisam de criar identificadores sem consultar primeiro um serviço central para obter o número seguinte.

O formato escrito normalizado contém 32 carateres hexadecimais, divididos em cinco grupos por hífenes. Segue o padrão 8-4-4-4-12 e tem 36 carateres quando se incluem os quatro hífenes.

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

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

Que versão de UUID devo escolher?

Escolhe a versão 4 quando precisares de um identificador opaco, gerado de forma independente, e não for necessário que os mesmos dados de entrada produzam sempre o mesmo resultado. Em resumo, a v1 utiliza informações de tempo e do nó, a v2 corresponde ao formato DCE Security, a v3 deriva um UUID de um espaço de nomes e de um nome através de MD5, a v4 é aleatória, a v5 faz essa derivação com SHA-1, a v6 reorganiza dados baseados no tempo, a v7 combina um carimbo de data e hora Unix com dados aleatórios e a v8 destina-se a formatos experimentais ou específicos de fornecedores.

  • Utiliza UUID v4 para IDs de registos, referências de carregamentos, IDs de pedidos de API e dados de teste quando forem adequados identificadores distribuídos aleatoriamente.
  • Utiliza UUID v5 quando um determinado espaço de nomes e nome tiverem de produzir sempre o mesmo identificador. É útil para importações repetíveis e regras de eliminação de duplicados.
  • Considera UUID v7 quando os registos precisarem de identificadores que sigam aproximadamente a ordem de criação e a tua base de dados ou software tiver suporte para esta versão.
  • Utiliza um número inteiro sequencial normal quando os valores forem criados por uma única base de dados e as chaves compactas e naturalmente ordenadas forem mais importantes do que a geração descentralizada.

As versões mais antigas continuam presentes em sistemas existentes, mas um novo projeto deve escolher a versão adequada aos requisitos reais, em vez de tratar todas as versões de UUID como equivalentes.

Como usar UUID v4 na prática

Gera um UUID, copia o valor do campo de resultado UUID v4 e guarda a cadeia canónica completa, exceto se o sistema de destino especificar outra representação.

  1. Cria um UUID novo para o objeto ou evento que precisa de uma identidade.
  2. Mantém os cinco grupos e os quatro hífenes ao transferi-lo entre sistemas.
  3. Guarda-o num tipo UUID da base de dados, se estiver disponível. Caso contrário, utiliza um campo de texto ou binário com o tamanho adequado à representação escolhida.
  4. Adiciona uma restrição de unicidade quando a base de dados tiver de rejeitar valores UUID v4 gerados em duplicado.

Entre as utilizações habituais estão identificar uma encomenda antes de esta chegar à base de dados principal, correlacionar entradas de registo entre vários serviços, atribuir um nome a um objeto carregado ou definir IDs estáveis para linhas preparadas para importação. Muitas vezes, é mais fácil combinar um UUID entre conjuntos de dados criados de forma independente do que sequências locais de números inteiros, que podem conter os mesmos valores em cada origem.

Espaços, pontuação, letras acentuadas e carateres não latinos não criam problemas como dados de entrada para UUID v4, porque o processo de geração não deriva o identificador de texto. Se precisares de um identificador baseado num nome que contenha esses carateres, utiliza um esquema de UUID baseado em nomes e define com precisão a codificação de carateres e as regras de normalização. Caso contrário, textos visualmente idênticos podem produzir sequências de bytes diferentes e, por consequência, identificadores distintos.

Dois valores UUID v4 podem ser iguais?

Sim, uma colisão é teoricamente possível, mas não constitui uma preocupação prática numa utilização normal de UUID v4, desde que a geração recorra a uma fonte aleatória adequada. Um UUID v4 tem 122 bits variáveis, porque os restantes identificam a versão e a variante, deixando um conjunto extremamente vasto de valores possíveis.

Por isso, "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 de aleatoriedade é inadequada, podem criar riscos de duplicação mais realistas do que o acaso por si só. Os sistemas que não possam tolerar duplicados devem, ainda assim, impor a unicidade ao nível da base de dados ou da aplicação.

Um UUID também não prova que um pedido é legítimo. Não utilizes apenas um UUID visível como forma de autorização, nem pressuponhas que um objeto está protegido só porque o respetivo endereço é difícil de adivinhar. Os controlos de acesso devem ser aplicados ao recurso subjacente identificado pelo UUID.

Perguntas frequentes

Os UUID distinguem maiúsculas de minúsculas?

Não. As letras hexadecimais no texto de um UUID são normalmente interpretadas sem distinção entre maiúsculas e minúsculas, pelo que A e a representam o mesmo valor. A apresentação canónica habitual utiliza minúsculas. Normalizar as letras antes de comparar texto evita resultados inconsistentes em sistemas que fazem essa distinção ao comparar cadeias.

Posso usar um UUID v4 num URL ou nome de ficheiro?

Sim. O formato canónico utiliza carateres hexadecimais e hífenes, todos adequados a segmentos normais de caminhos de URL e aos sistemas de ficheiros mais comuns. Evita adicionar chavetas, exceto se uma API específica as exigir, e lembra-te de que expor um UUID num URL não torna o recurso privado.

Devo remover os hífenes de um UUID?

Remove-os apenas quando o formato de destino exigir explicitamente 32 carateres hexadecimais. Muitas bibliotecas e tipos UUID de bases de dados aceitam o formato canónico com hífenes, que é mais fácil de reconhecer e tem menos probabilidade de ser confundido com outro valor hexadecimal.

Um UUID v4 pode ser usado como palavra-passe ou segredo de API?

Não. Um identificador e um segredo têm finalidades diferentes. Algumas implementações de UUID podem utilizar uma fonte de aleatoriedade adequada, mas o próprio formato UUID não garante os requisitos de tratamento, confidencialidade ou entropia aplicáveis a palavras-passe, tokens de sessão e credenciais de API. Gera credenciais ou tokens através de um mecanismo concebido para esse fim, em vez de utilizares um Gerador de UUID v4.

Um UUID v4 pode ser considerado um dado pessoal ao abrigo do RGPD?

Sim. Pode ser um dado pessoal quando identifica ou pode ser associado a uma pessoa identificável, mesmo que os carateres não revelem diretamente um nome. Trata os UUID associados a contas de clientes, dispositivos ou registos de atividade de acordo com o contexto e com as regras de conservação e acesso da organização.

Posso usar UUID v4 como chave primária de uma base de dados?

Sim. Muitas bases de dados têm suporte direto para chaves primárias UUID. As chaves distribuídas aleatoriamente podem resultar em inserções menos localizadas no índice do que identificadores inteiros ordenados ou baseados no tempo. Por isso, consulta as recomendações da base de dados para tabelas com muitas operações de escrita. Mantém uma restrição de unicidade e utiliza uma única representação de armazenamento, de forma consistente, em importações, consultas e código da aplicação.

Ferramentas Populares