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 OnlineFormatação Avançada (Estilo Stripe)
Aplique prefixos tipados, remova hifens e adapte identificadores para esquemas ORM de produção.
usr_018f3a5b-9d48-7e30-b98a-5e4d21f879abFragmentos 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:
| Identificadores Gerados | Probabilidade 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.
-- 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;-- 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.
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).
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.
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.
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.
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.
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 Sistema | Função na Arquitetura | Benefí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 Stripe | Insere prefixos específicos por domínio e remove hífenes. | Facilita a leitura de ficheiros JSON gigantes durante sessões de depuração. |
| Snippets Nativos | Fornece 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.