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.