Codificar e decodificar Base64
Base64 transforma qualquer dado em texto seguro para viajar por sistemas que só entendem caracteres simples — JSON, e-mail, URLs. Cole aqui para codificar ou decodificar na hora, nos dois sentidos, com suporte correto a acentos. Tudo roda no navegador; nada é enviado a servidor.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Base64 não é criptografia — e fingir que é custa caro
O Base64 é uma troca de roupa, não um cofre: qualquer pessoa decodifica sem chave nenhuma, em qualquer ferramenta. Ele existe para transportar dados binários por canais de texto, não para esconder informação. Se você encontrar uma senha protegida em Base64 num arquivo de configuração, trate como senha em texto puro. Para esconder de verdade, o caminho é criptografia com chave — outra ferramenta, outro propósito.
Onde o Base64 aparece no seu dia
Está em mais lugares do que parece: no miolo de um JWT, nos anexos de e-mail (MIME), em imagens embutidas direto no HTML e no CSS (data URI), em payloads de webhooks, no header de Basic Auth e em campos binários de APIs REST. Saber codificar e decodificar rápido é uma dessas habilidades pequenas que economizam meia hora de depuração várias vezes por mês.
Acentos e emoji: o detalhe do UTF-8
O tropeço mais comum: codificar a palavra atenção num sistema, decodificar noutro que assume outra codificação de caracteres — e receber uma sopa de símbolos. O Base64 em si não tem culpa; a diferença está em como o texto vira bytes antes da codificação. Esta ferramenta usa UTF-8, o padrão da web, nas duas direções. Se um texto decodificado sair com caracteres estranhos, a origem provavelmente usou outra codificação — vale conferir antes de culpar os dados.
Decodificar payload sem expor o conteúdo
Depurar um webhook ou inspecionar um campo codificado costuma envolver dados reais de clientes. Fazer isso num site que envia o conteúdo para o servidor é criar um vazamento para resolver um bug. Aqui a conversão roda localmente: o dado permanece na sua máquina. Para converter dentro de um fluxo automatizado, a mesma operação está disponível via API, a US$ 0,002 por chamada.
Casos de uso
Inspecionar o payload de um webhook
Um campo do webhook chega codificado e a documentação não explica o formato. O dev cola o valor, decodifica e descobre o JSON interno — sem que o dado real do cliente saia da máquina.
Embutir um ícone no HTML
Para eliminar uma requisição, a dev converte o logo pequeno em Base64 e cola como data URI direto na folha de estilos. Um arquivo a menos para o navegador buscar.
Depurar e-mail que chega corrompido
Os anexos de um sistema de notas chegam ilegíveis. Decodificando o bloco MIME manualmente, o time descobre que o conteúdo estava sendo codificado duas vezes antes do envio.
Perguntas frequentes
Posso colar dados sensíveis para decodificar?
A conversão acontece no seu navegador, sem envio para servidor — o conteúdo não sai da página. Essa é justamente a diferença entre esta ferramenta e conversores que processam no backend.
Por que meu texto com ç e ã vira símbolo estranho ao decodificar?
Conflito de codificação de caracteres: o texto foi transformado em bytes num padrão diferente do UTF-8 antes de virar Base64. Observe o padrão dos erros — um par de símbolos no lugar de cada letra acentuada denuncia UTF-8 lido como Latin-1.
Base64 aumenta o tamanho do dado?
Sim, em cerca de um terço: cada 3 bytes viram 4 caracteres. É o custo de transportar binário como texto — aceitável para dados pequenos, ruim para arquivos grandes, que devem viajar em formato binário mesmo.
Qual a diferença entre Base64 e Base64URL?
Dois caracteres: o Base64 padrão usa sinais de mais e barra, que causam problema em URLs; a variante URL troca por hífen e sublinhado e dispensa o preenchimento com igual. JWTs usam a variante URL — se a decodificação falhar, teste a outra.
Quanto custa converter via API?
US$ 0,002 por chamada, preço fixo publicado. Sem plano, sem franquia: pagou, usou. Na página, ilimitado e gratuito.
Preciso me cadastrar para usar?
Não — nem para a página, nem para comprar uso da API. A compra é direta, e o atendimento é humano, em espanhol ou inglês. Pode escrever em português: a gente se vira bem.
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/dev/base64 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/base64", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/base64",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/base64", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/base64", 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
{
"items": [
"valor-1",
"valor-2"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.base64",
"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.
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. |