Como usar
- Escolha Codificar para transformar texto em Crockford Base32 ou Decodificar para transformá-lo de volta em texto.
- Mantenha a Variante Crockford selecionada e confira se o Preenchimento está desativado. Ative Minúsculas para obter saída em minúsculas.
- Digite ou cole a entrada, ou abra um arquivo. Na decodificação, hífens e espaços são ignorados.
- Copie o resultado ou baixe-o como arquivo.
O que é Crockford Base32?
Douglas Crockford criou este alfabeto Base32 para identificadores que as pessoas leem, digitam e falam em voz alta. Ele usa os dez dígitos e 22 letras maiúsculas: 0123456789ABCDEFGHJKMNPQRSTVWXYZ. As letras I e L ficam de fora porque se parecem com o dígito 1, o O porque se parece com 0, e o U para reduzir a chance de formar palavrões por acidente.
Cada símbolo carrega 5 bits, então 5 bytes viram 8 caracteres, exatamente como no Base32 da RFC 4648. Os símbolos estão em ordem ASCII crescente, de modo que strings sem preenchimento e na mesma caixa de letras são ordenadas na mesma ordem que os dados que codificam. A especificação de Crockford não usa preenchimento, então mantenha a opção Preenchimento desativada.
Decodificação tolerante
A especificação de Crockford pede que os decodificadores aceitem o que as pessoas realmente digitam, e esta ferramenta faz isso:
- Letras maiúsculas e minúsculas são tratadas da mesma forma.
- A letra O é lida como o dígito 0, e as letras I e L são lidas como 1.
- Os hífens, que podem ser inseridos para facilitar a leitura de códigos longos, são ignorados, assim como espaços e quebras de linha.
A letra U não é válida e é informada junto com a sua posição.
Bytes, números e ULID
Crockford descreve sua codificação em termos de números, enquanto esta ferramenta codifica uma sequência de bytes em grupos de 5 bits, à maneira da RFC 4648, usando os símbolos de Crockford. Quando o número de bits não é múltiplo de 5, as implementações baseadas em números colocam os bits zero excedentes no início e esta ferramenta os coloca no final, então os resultados podem ser diferentes.
O ULID é um exemplo comum. Ele usa o alfabeto de Crockford, mas codifica seu valor de 128 bits como um número em 26 caracteres, por isso os 16 bytes de um ULID não resultam na mesma string aqui, e decodificar um ULID gera bytes deslocados em dois bits. O símbolo de verificação opcional da especificação de Crockford, um caractere extra com o valor módulo 37, não é suportado: esta ferramenta não o adiciona nem o verifica.
Especificação
| Alfabeto | 0-9 A-Z sem I L O U |
|---|---|
| Tamanho da saída | 8 caracteres a cada 5 bytes (160%) |
| Preenchimento | Nenhum |
| Padrão | Crockford Base32 (2002) |
| Diferencia maiúsculas e minúsculas | Não |
Exemplos
| Entrada (UTF-8) | Saída |
|---|---|
Hello, World! | 91JPRV3F5GG5EVVJDHJ22 |
Base64.is | 89GQ6S9P6GQ6JWR |
你好 | WJYT1SD5QM |
Perguntas frequentes
O Crockford Base32 diferencia maiúsculas de minúsculas?
Não. A saída fica em maiúsculas por padrão, e a opção Minúsculas a muda para minúsculas. O decodificador aceita as duas formas, mesmo misturadas na mesma string.
Por que I, L, O e U não estão no alfabeto?
I e L são facilmente confundidos com 1, e O com 0, então ficam de fora e são lidos como esses dígitos na decodificação. O U é excluído para que códigos aleatórios tenham menos chance de formar palavras ofensivas em inglês.
Esta ferramenta suporta o símbolo de verificação de Crockford?
* ~ $ = U. Esta ferramenta não o adiciona nem o verifica, então remova o símbolo de verificação antes de decodificar.Posso decodificar um ULID aqui?
Não nos seus 16 bytes exatos. O ULID codifica seus 128 bits como um único número, com os bits excedentes no início, enquanto esta ferramenta trabalha com grupos de bytes e os coloca no final. Use uma biblioteca de ULID para ler o carimbo de data/hora e a parte aleatória.