Validador de Base32 Crockford
Verifica se uma string usa apenas o alfabeto Base32 Crockford (omite I, L, O, U para evitar ambiguidade). Comum em IDs human-readable.
Base32 de Crockford: a codificação amigável por trás do ULID
O Base32 de Crockford, criado por Douglas Crockford, é uma variante de Base32 otimizada para humanos lerem e digitarem identificadores. Usa 0–9 e as letras A–Z, mas exclui deliberadamente I, L, O e U — os três primeiros para evitar confusão com 1 e 0, e o U para evitar palavrões acidentais. Esta ferramenta valida o conjunto de caracteres (insensível a caixa, hífens ignorados).
O exemplo acima, 01ARZ3NDEKTSV4RRFFQ69G5FAV, é um ULID — um identificador de 26 caracteres, ordenável lexicograficamente, cuja codificação é o Base32 de Crockford. Isso faz desse alfabeto a espinha dorsal dos IDs ordenáveis modernos.
O que o torna tolerante
- Insensível a caixa: decoders aceitam maiúsculas ou minúsculas e normalizam para maiúsculas.
- Substituições de confundíveis na decodificação:
O→0, eI/L→1, então um erro de digitação humano ainda decodifica certo. - Hífens são ignorados: você pode inserir
-por legibilidade e eles são removidos antes de decodificar. - Símbolo de verificação opcional: o Crockford define um caractere de verificação mod-37 (
*,~,$,=,U) que algumas implementações anexam.
Onde aparece
- ULID: timestamp de 48 bits + 80 bits de aleatoriedade, codificado em 26 caracteres Crockford — ordenável e seguro para URL.
- IDs públicos e cupons: códigos curtos feitos para serem lidos em voz alta, ditados por telefone ou impressos em recibos.
- Shards de chave e licenças: onde erros de transcrição precisam ser tolerados.
- Mock data / testes: checar que um token é Crockford bem-formado antes de parsear.
Pegadinhas
- Não é RFC 4648: o Crockford é uma especificação à parte; não o decodifique com uma tabela Base32 padrão ou Base32hex.
- As exclusões são o ponto: ver
I,L,OouUna saída canônica significa que não é Crockford canônico. - Símbolo de verificação ≠ dado: se houver um caractere de verificação no final, não o inclua na decodificação do valor.
- Monotonicidade do ULID: dois ULIDs no mesmo milissegundo dependem da parte aleatória; a ordenabilidade é por milissegundo, não estritamente única.
FAQ
Por que excluir I, L, O, U? I/L parecem 1, O parece 0 e o U é descartado para evitar formar palavras ofensivas — tudo para tornar códigos digitados à mão confiáveis.
Um ULID é só Base32 de Crockford? Um ULID é um valor de 128 bits cuja forma em texto são 26 caracteres Base32 de Crockford; a codificação é Crockford, a estrutura (tempo + aleatório) é própria do ULID.
Preserva a ordem como o Base32hex? Sim, para o alfabeto canônico — é por isso que ULIDs ordenam cronologicamente como strings simples.
Ferramentas Relacionadas
Validador de Base32 Hex
Verifica se uma string usa apenas o alfabeto Base32-Hex (0-9, A-V). Variante usada em DNS e padrão RFC 4648.
Validador de MAC Address
Valide endereços MAC nos formatos com dois pontos (xx:xx:xx:xx:xx:xx), hífen, Cisco (xxxx.xxxx.xxxx) ou sem separador. Identifica unicast/multicast e local/universal. Tudo no navegador.
Validador de Número de Certidões
Valide números de certidão de nascimento, casamento ou óbito no formato CNJ de 32 dígitos. Verificação no navegador.
Validador de Base32hex
Valida codificação Base32hex (RFC 4648, alfabeto 0-9 e A-V). Comum em sistemas que precisam preservar ordenação.
Validador Last-Modified
Valide se um cabeçalho HTTP Last-Modified está no formato correto (HTTP-date, RFC 7231). Útil para depurar cache de navegador, CDNs e desempenho de sites.
Validador de Código NCM
Valida o formato do NCM (8 dígitos numéricos). Decompõe em capítulo (2), posição (2), subposição (2) e item (2). Não valida tabela oficial.