O Que é Base64?
Base64 é uma forma de escrever qualquer dado, seja texto, imagem ou um arquivo inteiro, usando apenas 64 caracteres seguros: A–Z, a–z, 0–9, + e /, com = como preenchimento (padding) no final (definido na RFC 4648). Ele existe para que dados binários possam trafegar por sistemas feitos para texto puro, como e-mail, JSON, HTML e cabeçalhos HTTP.
Cada 3 bytes de entrada viram 4 caracteres Base64, então os dados codificados ficam cerca de 33% maiores que o original. Por exemplo, o texto Hi vira SGk=. Você encontra Base64 em anexos de e-mail, URIs de imagem data: em HTML e CSS, respostas de API que carregam arquivos, JSON Web Tokens e cabeçalhos de autenticação HTTP Basic.

Como Decodificar Base64
Cole-o na caixa Decodificar. Quebras de linha, espaços, um prefixo data:...;base64,, caracteres seguros para URL (- e _) e a falta do padding = são todos tratados.
Se os dados forem texto, o texto UTF-8 decodificado aparece na hora, pronto para copiar.
Se os dados forem um arquivo, o decodificador reconhece o formato pelos primeiros bytes: imagens ganham pré-visualização, e PDFs, ZIPs e outros arquivos podem ser baixados.
Advertisement
Como Codificar Texto ou Arquivo em Base64
Digite ou cole o texto na aba Codificar. Ele é codificado como UTF-8, então acentos, escritas asiáticas e emoji são preservados na ida e na volta.
Marque Seguro para URL para obter Base64URL (usado em URLs e JWTs) ou Quebrar linhas em 76 caracteres para corpos de e-mail MIME.
Em Arquivo para Base64, solte qualquer arquivo de até 10 MB. Copie o Base64 puro ou uma data URI pronta, como data:image/png;base64,..., para incorporá-lo em HTML ou CSS.
Base64 para Imagem e Base64 para PDF
Muitas vezes o Base64 envolve um arquivo: uma imagem incorporada em uma página web ou em um e-mail, ou um PDF retornado por uma API. O decodificador verifica os primeiros bytes, conhecidos como magic numbers (números mágicos), para identificar o arquivo: imagens PNG, JPEG, GIF, WebP e SVG ganham pré-visualização ao vivo, e arquivos PDF, ZIP, GZIP, MP3 e MP4 ganham um botão de download. PDFs também podem ser abertos em uma nova aba.
No sentido inverso, a conversão de imagem para Base64 funciona na aba Arquivo para Base64: solte a imagem e copie a data URI.
Advertisement
Variantes de Base64: Padrão, Seguro para URL, MIME e Data URI
Usa + e / com padding =. É o formato padrão na maioria das bibliotecas e APIs.
Troca + e / por - e _ e geralmente omite o padding, para que o resultado possa ficar em uma URL ou em um nome de arquivo. Os JSON Web Tokens usam essa variante.
Base64 padrão dividido em linhas de 76 caracteres, como nos anexos de e-mail.
Base64 com um prefixo que indica o tipo do arquivo, como data:image/png;base64,, para que o navegador possa exibi-lo diretamente na página.
Base64 é Codificação, Não Criptografia
O Base64 deixa os dados seguros para transporte, não secretos. Qualquer pessoa pode decodificá-lo em um segundo, inclusive com esta ferramenta:
Nunca use Base64 para esconder senhas ou chaves. Um cabeçalho de autenticação HTTP Basic é apenas
user:passwordem Base64, e é por isso que ele só deve trafegar via HTTPS. Verifique o certificado de um site com o verificador SSL.O payload de um JWT é legível. A parte do meio de um JSON Web Token é JSON codificado em Base64URL, então qualquer pessoa que tenha o token pode ler as declarações (claims) dele.
Decodificar aqui é privado. Esta ferramenta roda inteiramente no seu navegador; os dados que você cola ou carrega nunca chegam ao nosso servidor.
Precisa de sigilo de verdade? Use criptografia adequada e gere segredos fortes com o gerador de senha.
Advertisement
Base64 em JavaScript, Python e na Linha de Comando
Toda linguagem tem Base64 embutido. Lembre-se de codificar o texto como UTF-8 primeiro, senão os caracteres que não existem no inglês, como ç e ã, ficam corrompidos.
// Encode UTF-8 text
const b64 = btoa(String.fromCharCode(...new TextEncoder().encode('héllo'))) // 'aMOpbGxv'
// Decode back to text
const text = new TextDecoder().decode(Uint8Array.from(atob(b64), (c) => c.charCodeAt(0)))import base64
b64 = base64.b64encode('héllo'.encode()).decode() # 'aMOpbGxv'
text = base64.b64decode(b64).decode() # 'héllo'
url_safe = base64.urlsafe_b64encode(b'\xfb\xff\xbf') # b'-_-_'echo -n 'hello' | base64 # aGVsbG8=
echo 'aGVsbG8=' | base64 --decode # hello
base64 -w 0 image.png > image.txt # Linux: one line, no wrapping[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('hello')) # aGVsbG8=
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('aGVsbG8=')) # helloMais Ferramentas de Codificação e Texto
Outros conversores para trabalhar com texto e dados: