Codificador Flickr Base58
“Hello World” vira iXf12sRWto45bmC em Flickr Base58, o alfabeto dos links curtos do flic.kr: sem 0, O, I nem l, e com as minúsculas antes das maiúsculas, o contrário do Bitcoin. Codifica texto ou um número no estilo de ID de foto. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Hello World
- Modo de cálculo
- Encode
- Resultado
- iXf12sRWto45bmC
- Formato de saída
- Text
- Entrada
- Hello World
- Resultado em Base58
- iXf12sRWto45bmC
Um codificador Flickr Base58 mapeia texto UTF-8 comum ou inteiros não negativos no alfabeto de cinquenta e oito caracteres que o Flickr popularizou para os links curtos flic.kr, e um decodificador Flickr Base58 reverte esse mapeamento para que você recupere a carga original. O alfabeto mantém dígitos e letras, mas descarta o zero, o O maiúsculo, o I maiúsculo e o L minúsculo — os quatro glifos que as pessoas mais confundem ao ler anotações manuscritas, rótulos impressos ou URLs compartilhadas — e ordena as letras minúsculas antes das maiúsculas, o oposto da ordem do Base58 do Bitcoin.
O que é o Flickr Base58 e como ele difere do Base58 do Bitcoin
Base58 é uma família de codificações de binário para texto que mapeiam um valor arbitrário em um alfabeto de cinquenta e oito símbolos. O esquema de URL curta do Flickr usa uma ordenação concreta: dígitos de um a nove, depois a–z minúsculas sem o L, depois A–Z maiúsculas sem I e O. Essa ordenação não é o alfabeto Bitcoin.
O Bitcoin usa os mesmos glifos excluídos, mas coloca as maiúsculas antes das minúsculas, de modo que a mesma sequência de bytes codifica para uma cadeia diferente em cada alfabeto. A codificação de texto percorre os bytes UTF-8 como um inteiro big-endian em base duzentos e cinquenta e seis, divide repetidamente por cinquenta e oito e mapeia cada resto para o alfabeto Flickr; bytes zero à esquerda viram uns à esquerda na saída, seguindo a convenção habitual de bytes do Base58.
A codificação de um inteiro — por exemplo, um ID de foto usado em um link curto — trata o valor como um número inteiro não negativo, divide repetidamente por cinquenta e oito e constrói a cadeia sem um preenchimento separado de byte zero à esquerda; o próprio zero vira o primeiro caractere do alfabeto, o um.
A decodificação inverte o mapeamento: cada caractere vira um dígito de zero a cinquenta e sete, o inteiro grande é reconstruído e são devolvidos os bytes UTF-8 ou a cadeia de dígitos do inteiro. Quando aparece um caractere fora do alfabeto — dígito zero, O maiúsculo, I maiúsculo, L minúsculo, pontuação ou espaço em branco —, o decodificador deve falhar ruidosamente.
Esta landing atende quem busca um codificador Flickr Base58, um decodificador Base58 de URL curta ou um conversor do alfabeto Flickr; não é Base64, não é apenas o Base58 do Bitcoin e não é um analisador completo de links flic.kr que resolve páginas de fotos nos servidores do Flickr.
Dicas práticas, limites e quando preferir Flickr ao Base58 do Bitcoin
Prefira format integer quando você trabalha com identificadores numéricos no estilo de URL curta, como IDs de fotos, e precisa da ordenação do alfabeto Flickr que os códigos curtos com minúsculas primeiro usam. Prefira format text quando você parte de UTF-8 legível por humanos e quer uma cadeia Base58 que ainda omite 0, O, I e l, mas segue a ordem de caracteres do Flickr em vez da do Bitcoin.
Codifique um inteiro conhecido como um dois três quatro cinco seis sete oito nove zero um dois, decodifique o token e confirme que a cadeia decimal corresponde. Mantenha as cargas abaixo do limite de caracteres publicado; cadeias extremamente longas se expandem como inteiros grandes e é melhor dividi-las ou tratá-las offline. Esta ferramenta não é um resolvedor completo de links curtos: ela não busca redirecionamentos flic.kr, não classifica hosts de farm do Flickr e não valida endereços Bitcoin nem checksums Base58Check.
Ao ensinar, codifique a mesma frase sob os dois alfabetos lado a lado, para que os alunos vejam por que as cadeias diferem mesmo que ambos descartem os mesmos quatro glifos ambíguos.
Casos de uso
Tokens seguros para humanos com a ordem do alfabeto Flickr
Codifique rótulos curtos sob o alfabeto Flickr para que códigos impressos evitem a confusão 0/O/I/l e sigam as convenções de URL curta com minúsculas primeiro.
Ensino da ordem do alfabeto versus Base58 do Bitcoin
Salas de aula codificam Hello World sob os alfabetos Flickr e Bitcoin, comparam as cadeias e depois forçam caracteres inválidos para mostrar a validação estrita.
Perguntas frequentes
Qual alfabeto este codificador Flickr Base58 usa?
O alfabeto de URL curta do Flickr: 123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ. Ele exclui 0, O, I e l, e coloca as minúsculas antes das maiúsculas.
Qual a diferença entre Flickr Base58 e Base58 do Bitcoin?
Ambos descartam 0, O, I e l, mas o Flickr ordena as minúsculas antes das maiúsculas, enquanto o Bitcoin faz o contrário. Os mesmos bytes ou inteiro, portanto, codificam para cadeias diferentes.
Posso codificar inteiros para códigos no estilo URL curta?
Sim. Defina format como integer e passe uma cadeia de dígitos não negativa em text (modo encode). Decodifique com o mesmo formato para recuperar o inteiro decimal.
O codificador Flickr Base58 é gratuito?
A ferramenta no navegador é gratuita e roda localmente.
Como transformo um código curto do Flickr de volta em número?
Escolha decodificar junto com a opção de número: o código é lido com o alfabeto do Flickr e você recebe o número em dígitos decimais comuns. Com a opção de texto você receberia texto UTF-8, então use a que combina com o jeito como o código foi criado.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/base58-flickr \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello World"}'const res = await fetch("https://api.kit.forhosting.com/enc/base58-flickr", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello World"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base58-flickr",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello World"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base58-flickr", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello World"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello World"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base58-flickr", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Hello World"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base58_flickr",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chars | 100000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Escolha encode para converter texto simples ou um ID inteiro no estilo de foto para Flickr Base58, ou decode para recuperar o UTF-8 ou o inteiro; caracteres fora do alfabeto retornam um erro invalid_input claro em vez de corrupção silenciosa. O caminho é aritmética pura e determinística — sem rede, sem sementes aleatórias, sem dependência de relógio —, portanto o executor gratuito no navegador e a API pré-paga retornam o mesmo JSON sempre.
Como chamar a API e o que a resposta contém
O modo decode com format text trata text como uma carga Base58 e devolve a cadeia UTF-8 recuperada. Envie um corpo JSON com um campo de cadeia obrigatório text (aliases input, value e data), um mode opcional que pode ser encode ou decode, e um format opcional que pode ser text ou integer. O modo padrão é encode e o formato padrão é text: os bytes UTF-8 de text viram uma cadeia Flickr Base58. O format integer espera uma cadeia de dígitos não negativa no encode (sem sinal, espaços ou ponto decimal) e retorna um token no estilo de URL curta do Flickr Base58; no decode, ele retorna o inteiro como cadeia decimal e, quando seguro, como número JSON. O comprimento da entrada é limitado a cem mil caracteres, para que uma única requisição não esgote a memória do Worker em expansões patológicas de inteiros grandes. Em caso de sucesso no encode de texto, a resposta inclui mode, format, input, result e base58 com a mesma cadeia codificada, alphabet com a constante completa de cinquenta e oito caracteres do Flickr, alphabet_name definido como flickr, input_bytes, output_length e uma mensagem curta em inglês. Respostas de encode de inteiros acrescentam number_string e number quando o valor cabe em um inteiro JSON seguro. Respostas de decode espelham os mesmos campos de alfabeto com input_length e com text mais output_bytes ou number_string mais number. Falhas de validação — text ausente, text que não é cadeia, entrada acima do limite, mode ou format desconhecido, caractere Base58 inválido, carga de inteiro que não é dígito ou bytes decodificados que não são UTF-8 válido — retornam invalid_input e nunca são cobradas. O preço é uma taxa fixa de US$ 0,002 por requisição bem-sucedida com unidade item e preço unitário marginal zero.
Dicas práticas, limites e quando preferir Flickr ao Base58 do Bitcoin
Inclua deliberadamente um caractere proibido — dígito zero, O maiúsculo, I maiúsculo ou L minúsculo — em uma requisição de decode para garantir que seu cliente trata o invalid_input e a mensagem de erro que indica o índice e os glifos excluídos. Tarefas que falham com invalid_input não consomem saldo pré-pago, o que mantém scripts exploratórios baratos quando você testa caracteres inválidos do alfabeto.
Casos de integração
Fixtures de IDs no estilo URL curta em testes
Codifique IDs inteiros no estilo de foto para Flickr Base58 e garanta que o decode recupera a mesma cadeia decimal na CI sem pacotes de terceiros.
Perguntas técnicas
O que acontece se eu decodificar uma cadeia com 0, O, I ou l?
A API retorna invalid_input, indica o caractere inválido e seu índice, e lembra que o Flickr Base58 exclui esses quatro glifos. Tarefas com falha não são cobradas.