Desenvolvedores

Utilitários para desenvolvedores — UUIDs, timestamps, Base64, bases numéricas e códigos, tudo funcionando offline no navegador.

IDs e tempo

3

Codificação

5

Cores e texto

6

Agrupadas pela situação, não pelo formato

Esta categoria não é bem um tema, e sim uma gaveta. As ferramentas nela são as pequenas conversões de que você precisa enquanto a tarefa real é outra coisa, por isso estão listadas aqui pela situação em que você se encontra quando recorre a elas.

“Há uma string opaca neste log e não sei o que é.” Se ela se parecer com 550e8400-e29b-41d4-a716-446655440000, o decodificador de UUID informa a versão e, para v1, v6 e v7, a data em que foi criado. Se se parecer com SGVsbG8= ou terminar em ==, é Base64 — decodifique. Se for um número simples de dez dígitos começando por 17, é um timestamp Unix de aproximadamente agora.

“Preciso de um ID.” O gerador de UUID produz v1 e v3 a v7, e gera milhares de uma vez para popular um banco de dados de teste.

“Este timestamp está errado por um fator de mil.” Segundos ou milissegundos — o conversor de timestamps trata dos dois e mostra qual deles você recebeu.

“Preciso deste data URI como um arquivo real.” Ou o inverso: Base64 para imagem.

“Que cor é exatamente esta?” O seletor de cores para converter entre notações, o seletor de cores de imagem para ler um valor de uma captura de tela ou de um mockup.

“Isto precisa estar em snake_case e está em camelCase.” Conversor de maiúsculas/minúsculas.

“Quanto é 0xDEADBEEF em decimal, e o que acontece se for com sinal?” Conversor de sistemas numéricos, que, ao contrário da maioria, trata de negativos e de complemento de dois.

Os identificadores revelam mais do que as pessoas esperam

A coisa transversal que vale a pena dizer aqui, porque nenhuma página de ferramenta isolada a assume: vários destes formatos carregam informação que você não pretendia publicar.

O UUID v1 incorpora um timestamp e o endereço MAC da máquina. Essa foi a concepção original — a unicidade garantida por “esta máquina, neste momento”. Também significa que um UUID v1 em uma URL pública diz a qualquer pessoa interessada exatamente quando o registro foi criado e lhe dá um identificador estável para o servidor que o criou. Você mesmo pode confirmar isso colando um no decodificador.

O UUID v7 também incorpora um timestamp Unix, deliberadamente, porque ordenar por ID e ordenar por data de criação serem a mesma coisa é extremamente útil para a localidade do índice do banco de dados. O custo é a mesma exposição: os IDs v7 são ordenados, por isso expô-los publicamente revela datas de criação e permite que alguém estime quantos registros você cria por hora observando dois deles.

A v4 é a que não revela nada — 122 bits de aleatoriedade e nenhuma estrutura. É por isso que continua sendo o padrão para tudo o que seja visível ao usuário, e por que “use v7 para a chave primária, v4 para o identificador público” é uma regra razoável para a mesma tabela.

O Base64 revela tudo, instantaneamente, a qualquer pessoa. Não é ofuscação. Um secret do Kubernetes é codificado em Base64 para que valores binários sobrevivam ao YAML, não para protegê-los.

Tudo nesta página funciona localmente, o que para esta categoria importa mais do que na maioria: identificadores de produção, tokens e fragmentos de log são exatamente o tipo de coisa que não deveria ser colado no servidor de outra pessoa para ser decodificado.

Agradeceria se você compartilhasse estas páginas com amigos, as salvasse nos favoritos ou as linkasse. Obrigado! 🙏