Decodificador ULID (marca de tempo e aleatoriedade)
Desenvolvimento
Um ULID é um identificador de 26 caracteres ordenável lexicograficamente: os primeiros 10 caracteres são uma marca de tempo de 48 bits em milissegundos e os últimos 16 são 80 bits de aleatoriedade, tudo em Base32 de Crockford. Como o tempo fica nos bits altos, os ULIDs ordenam em ordem de criação — exatamente por isso as pessoas os usam em vez de UUIDs aleatórios. Este decodificador separa um ULID: lê a marca de tempo e a mostra como UTC ISO, um relativo "há x" e milissegundos de época crus, e mostra a parte aleatória em Base32 de Crockford e em hex. A decodificação não diferencia maiúsculas e é tolerante com os confusáveis clássicos de Crockford — I e L são lidos como 1, O como 0 — e valida o comprimento, o alfabeto e que a marca de tempo não estoure os 48 bits (o primeiro caractere deve ser 0–7). Tudo roda localmente; nada é enviado.
Primeiros 10 = marca de 48 bits em ms, últimos 16 = 80 bits de aleatoriedade. Base32 de Crockford: I/L→1, O→0, sem diferenciar maiúsculas.
Como usar
- Cole um ULID (26 caracteres, ex.: 01ARZ3NDEKTSV4RRFFQ69G5FAV).
- Leia a marca de tempo de criação (UTC, relativa e ms de época).
- Copie a marca de tempo ou a aleatoriedade em Crockford ou hex conforme necessário.
Perguntas frequentes
- Como um ULID codifica o tempo?
- Os primeiros 10 caracteres Base32 de Crockford guardam uma contagem de 48 bits de milissegundos desde a época Unix (1970-01-01). 48 bits cobrem datas até o ano 10889, então o primeiro caractere só pode ser 0–7; algo maior estouraria e é rejeitado como inválido. Os 16 caracteres restantes são 80 bits de aleatoriedade.
- Por que a decodificação não diferencia maiúsculas?
- Os ULIDs usam Base32 de Crockford, projetada para ser amigável: não diferencia maiúsculas e trata as letras visualmente ambíguas I e L como 1 e O como 0. Esta ferramenta as normaliza antes de decodificar, então um ULID digitado em minúsculas ou com um O no lugar de um zero ainda decodifica corretamente.
- Como um ULID difere de um UUID?
- Ambos são IDs de 128 bits, mas um ULID é codificado como 26 caracteres Base32 ordenáveis com a marca de tempo nos bits altos, então uma lista de ULIDs já está em ordem de criação. Um UUID aleatório (v4) não carrega tempo e não ordena de forma útil; o UUID v7 é a resposta do padrão à mesma necessidade. Para esses, use o inspetor de UUID.
- A marca de tempo é exata?
- Sim — a marca de tempo em milissegundos é guardada diretamente no ULID, então a hora de criação é exata ao milissegundo, supondo que o relógio do gerador estivesse correto. O tempo relativo é calculado contra o relógio atual do seu dispositivo.
Ferramentas relacionadas
Conversor de Base64 para hexadecimal (e volta)
Converta uma string Base64 em bytes hexadecimais e hex de volta para Base64, com suporte URL-safe, no seu navegador.
Codificador e Decodificador Quoted-Printable
Codifique texto para MIME Quoted-Printable (RFC 2045) ou decodifique — com escapes =XX, quebras de linha suaves e UTF-8 — tudo no seu navegador, com quebra de linha em 76 caracteres ao codificar.
Gerador de Hash (SHA)
Gere hashes SHA-1, SHA-256, SHA-384 e SHA-512 a partir de texto.
Codificador / Decodificador de URL
Codifique texto para URLs em porcentagem, ou decodifique URLs em texto.
Codificador / Decodificador Base64
Codifique texto em Base64 ou decodifique Base64 de volta em texto.
Formatador e Validador de JSON
Formate, embeleze, minifique e valide JSON no seu navegador.