Gerador de UUID

Gere e inspecione identificadores criptográficos UUIDv4 e UUIDv7 ordenados temporalmente com latência zero. Inclui Inspetor Reverso de UUID, extração de timestamp UTC, formatação estilo Stripe e geração em lote sem colisões.

Ferramentas Online
SISTEMA: ATIVO
CSPRNG (window.crypto)0ms Latência no ClienteConformidade RFC 9562 / RFC 4122
Selecione a Arquitetura do Identificador
Identificador Criptográfico Gerado
Entropia Criptográfica:74 bits CSPRNG + 48 bits Timestamp em Milissegundos
018f3a5b-9d48-7e30-b98a-5e4d21f879ab

Formatação Avançada (Estilo Stripe)

Aplique prefixos tipados, remova hifens e adapte identificadores para esquemas ORM de produção.

Caixa Hexadecimal
Separadores de Hífen
Prefixos Rápidos:
Pré-visualização Formatada40 chars
usr_018f3a5b-9d48-7e30-b98a-5e4d21f879ab

Fragmentos de Código para Desenvolvedores

Código pronto para produção para instanciar esta arquitetura no seu ambiente de execução.

// RFC 9562 UUIDv7 in JavaScript / TypeScript (Native Web Crypto)
export function generateUUIDv7(): string {
  const time = Date.now();
  const timeHex = time.toString(16).padStart(12, '0');
  const rand = new Uint8Array(10);
  window.crypto.getRandomValues(rand);
  rand[0] = (rand[0] & 0x0f) | 0x70; // Version 7
  rand[2] = (rand[2] & 0x3f) | 0x80; // Variant RFC 4122
  const randHex = Array.from(rand).map(b => b.toString(16).padStart(2, '0')).join('');
  return `${timeHex.slice(0,8)}-${timeHex.slice(8,12)}-${randHex.slice(0,4)}-${randHex.slice(4,8)}-${randHex.slice(8,20)}`;
}

Especificações Técnicas Padrão RFC 9562 & RFC 4122

Referência de engenharia autorizada para identificadores únicos universais de 128 bits.

Evolução de RFC 4122 (2005) para RFC 9562 (Maio 2024)

Publicado pelo IETF em maio de 2024, o RFC 9562 substitui o RFC 4122 para resolver restrições críticas de escalabilidade em bancos de dados modernos. O RFC 9562 formaliza UUIDv6, UUIDv7 e UUIDv8.

Entropia Criptográfica e Matemática de Colisões

Cálculos rigorosos de probabilidade baseados no Paradoxo do Aniversário no espaço de 128 bits.

Para um espaço de N estados e k identificadores gerados, a probabilidade de colisão é calculada por:

P(k) ≈ 1 - exp( -k² / (2 × 2¹²²) )
Identificadores GeradosProbabilidade de Colisão
1.000.000 (10⁶)
Geração instantânea em lote (batch)
≈ 1 × 10⁻²⁵ (Praticamente 0)
1.000.000.000 (10⁹)
1 bilhão de registros em banco cloud
≈ 1 × 10⁻¹⁹
100.000.000.000 (10¹¹)
Escala de cluster global de telecomunicações
≈ 1 × 10⁻¹⁵
2,71 × 10¹⁸
Geração de 1 bilhão de IDs/seg por 85 anos consecutivos
≈ 0,0000001% (1 em um bilhão)

Guia de Integração em Bancos de Dados de Produção

Configurações DDL ideais para PostgreSQL, MySQL InnoDB e SQLite.

PostgreSQL (v16 / v17+)
-- Recommended Schema for High-Throughput Tables
CREATE TABLE app_events (
    id UUID PRIMARY KEY, -- Stores 16 bytes binary
    payload JSONB NOT NULL,
    created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);

-- Extract timestamp directly from UUIDv7
-- No extra created_at index required!
SELECT id, ('x' || lpad(substr(replace(id::text, '-', ''), 1, 12), 16, '0'))::bit(64)::bigint
AS epoch_ms FROM app_events;
MySQL (InnoDB Engine)
-- Use BINARY(16) for Compact Primary Key
CREATE TABLE production_orders (
    id BINARY(16) PRIMARY KEY,
    amount DECIMAL(10,2) NOT NULL,
    status VARCHAR(32) NOT NULL
) ENGINE=InnoDB;

-- Insert UUIDv7 converted to binary
INSERT INTO production_orders (id, amount, status)
VALUES (UUID_TO_BIN('018f3a5b-9d48-7e30-b98a-5e4d21f879ab', 1), 99.50, 'paid');

Como Usar o Gerador Criptográfico de UUID

Guia passo a passo para desenvolvedores para gerar, inspecionar, formatar e otimizar identificadores de 128 bits em bancos de dados.

01

Selecione a Arquitetura do Identificador

Escolha entre UUIDv7 (ordenado temporalmente e monótono para chaves primárias em bancos de dados) ou UUIDv4 (aleatório criptográfico puro para tokens de sessão e segredos).

02

Gere Identificadores Criptográficos

Clique em Regenerar para criar um identificador de 128 bits através da API nativa Web Crypto (window.crypto), com execução em sub-milissegundos e zero colisões.

03

Aplique Formatação Estilo Stripe

Adicione prefixos de entidade (ex: usr_, tx_), alterne entre maiúsculas e minúsculas, remova hifens ou envolva nos formatos SQL, GUID e Base64URL.

04

Inspecione e Descodifique no Inspetor

Aceda ao separador Inspetor Reverso de UUID e cole qualquer string para extrair a versão RFC, variante, estrutura de bits e o timestamp UTC integrado.

05

Gere Lotes Massivos Sem Colisão

Utilize o separador Grelha de Lotes para gerar até 50.000 UUIDs seguros em menos de 50 ms, com opções de exportação direta para CSV, JSON e texto.

06

Otimize Índices e Esquemas de Banco de Dados

Consulte o separador Otimizador de Banco de Dados para analisar a fragmentação B-Tree e copie esquemas DDL prontos para PostgreSQL, MySQL InnoDB e SQLite.

Perguntas Frequentes (FAQ)

Respostas autorizadas a perguntas frequentes sobre a arquitetura UUIDv7 vs UUIDv4, padrões RFC e desempenho de indexação.

Q:Por que o UUIDv7 evita a fragmentação de índices B-Tree em comparação com o UUIDv4?

O UUIDv4 distribui as inserções aleatoriamente por todas as páginas folha. Ao encher uma página, o motor executa uma divisão de página custosa que reduz a ocupação para ~50%. O UUIDv7 inclui um timestamp de 48 bits, assegurando anexos sequenciais monótonos à direita da árvore.

Q:Como esta ferramenta garante zero colisões e segurança criptográfica?

Toda a lógica corre no navegador usando a API nativa Web Crypto (window.crypto), que obtém sementes de alta entropia do CSPRNG do kernel do sistema operacional.

Q:Como o Inspetor Reverso extrai a data de UUIDv7 e UUIDv1?

No UUIDv7, os primeiros 48 bits codificam o timestamp Unix em milissegundos. Nosso decodificador converte esses bits em data ISO-8601 UTC. No UUIDv1, o timestamp de 60 bits é reconstruído dos campos time_hi, time_mid e time_low.

Q:O UUIDv7 é oficialmente padronizado pelo IETF?

Sim. O UUIDv7 foi formalmente aprovado e publicado pelo IETF em maio de 2024 como RFC 9562, substituindo a especificação RFC 4122.

Q:O UUIDv7 pode vazar dados de rede ou de hardware?

Não. Diferentemente do UUIDv1 que continha o endereço MAC físico da placa de rede, o UUIDv7 contém exclusivamente hora UTC e 74 bits de entropia aleatória.

Q:Qual é o tipo de coluna recomendado para UUIDv7 em PostgreSQL e MySQL?

No PostgreSQL, use o tipo nativo UUID (16 bytes). No MySQL InnoDB, prefira BINARY(16) para evitar os 36 bytes de armazenamento de VARCHAR.

Q:É possível ordenar registos cronologicamente usando chaves primárias UUIDv7?

Sim. Como os primeiros 48 bits estão no formato big-endian, qualquer ordenação padrão pela coluna ordenará automaticamente os registos por ordem temporal.

Q:Por que usar prefixos estilo Stripe (ex: usr_, tx_)?

Prefixos tornam os identificadores legíveis nos logs, evitam trocas acidentais de parâmetros em APIs e conservam a entropia do UUID.

O que é Gerador de UUID?

Em arquiteturas de microserviços, usar chaves primárias sequenciais é um erro que compromete a performance e a segurança dos dados. Este gerador foi concebido para resolver os problemas de fragmentação de dados, permitindo-lhe criar identificadores UUIDv4 aleatórios e UUIDv7 baseados no tempo sem qualquer latência. A grande vantagem desta plataforma é operar integralmente no lado do cliente: nenhum identificador ou configuração de base de dados vaza para a internet. Conta ainda com um Inspetor Inverso inovador e formatação avançada, proporcionando um controlo absoluto sobre a forma como as suas APIs comunicam.

Cenário Prático: Testes de Carga e Geração Massiva

Um engenheiro de QA (Quality Assurance) em Lisboa está a preparar um teste de stress massivo para um novo serviço de faturação. Para simular o ambiente de produção, ele precisa de injetar 50.000 faturas falsas na base de dados, cada uma exigindo uma chave primária única que não destrua a performance dos índices. Ele utiliza a ferramenta "Zero-Collision Bulk Generation" configurada para UUIDv7. Adiciona o prefixo fac_ para emular o design de dados real. Em poucos segundos, o motor gera e exporta a lista completa sem bloquear o browser. O engenheiro importa os dados diretamente para o seu script de teste, validando a robustez do sistema antes do lançamento oficial.

Funcionalidades de Destaque no Desenvolvimento

Recurso do SistemaFunção na ArquiteturaBenefício no Dia a Dia
Geração em Lote (Bulk)Produz milhares de identificadores simultaneamente.Acelera a criação de dados falsos (mock data) para testes de carga.
UUIDv7 (RFC 9562)Ordena dados cronologicamente via timestamp embutido.Evita a degradação de performance em bases de dados relacionais.
Formatação Estilo StripeInsere prefixos específicos por domínio e remove hífenes.Facilita a leitura de ficheiros JSON gigantes durante sessões de depuração.
Snippets NativosFornece funções matemáticas limpas para copiar e colar.Elimina a dependência de pacotes NPM de terceiros vulneráveis.

História e Origem

A evolução do UUID é a história de como a engenharia de software resolveu o problema da descentralização. Nos anos 80 e 90, garantir que dois computadores não criassem o mesmo número requeria comunicação constante. O UUID introduziu a ideia de que a aleatoriedade estatística extrema é tão boa quanto a certeza absoluta. A versão 4 do formato baseou-se inteiramente na entropia criptográfica. No entanto, o seu aspeto aleatório prejudicava o armazenamento em disco. A introdução do UUIDv7 marcou a maturidade desta tecnologia, ao combinar a vastidão do espaço de 128 bits com a precisão temporal, criando o identificador perfeito para a era da nuvem.