Codificação Base64
Ferramenta online gratuita para codificar e decodificar Base64. Suporta UTF-8/ASCII/ISO-8859-1 e as variantes Standard, URL-Safe e MIME. Exibe taxa de expansão em tempo real e segue o padrão RFC 2045 para quebras MIME.
Sugestões Relacionadas
O que é a codificação Base64?
Base64 é um esquema de codificação binário-para-texto baseado em 64 caracteres ASCII imprimíveis, definido originalmente pela RFC 2045 (padrão MIME). O Base64 converte cada 3 bytes (24 bits) em 4 caracteres Base64 (A-Z, a-z, 0-9, +, /), permitindo que dados binários sejam transportados com segurança por sistemas que só aceitam texto, como cabeçalhos HTTP, payloads JSON, documentos XML ou parâmetros de consulta em URL.
**Base64 não é criptografia**, ele apenas realiza uma conversão de formato; qualquer pessoa pode decodificá-lo facilmente. Se você precisa proteger dados sensíveis, use um esquema de criptografia de verdade, como o AES. Os usos típicos do Base64 incluem: HTTP Basic Authentication (`Authorization: Basic dXNlcjpwYXNz`), os segmentos header e payload de tokens JWT (formato Base64URL), Data URIs (`data:image/png;base64,...`) e a codificação MIME de anexos de e-mail.
**URL-Safe Base64** (RFC 4648 §5) substitui os caracteres +/ do Base64 padrão por -_ e geralmente omite o padding =. Com isso, o resultado codificado pode ser usado com segurança em URLs, caminhos de arquivo ou campos JSON. Tokens JWT, o code_verifier do OAuth PKCE e o AWS Signature V4 usam a codificação URL-Safe Base64.
**A quebra de linha MIME** é um padrão definido na RFC 2045 que limita cada linha a no máximo 76 caracteres. Quando o conteúdo Base64 é usado em e-mails ou em cenários que exigem exibição em várias linhas, a variante MIME insere automaticamente uma quebra de linha (`\n`) a cada 76 caracteres. Esse é o formato padrão para transporte de anexos de e-mail.
A ferramenta usa a **API nativa btoa/atob** do navegador, combinada com uma lógica de tratamento segura para UTF-8, garantindo que caracteres multibyte como chinês, japonês e emoji sejam codificados corretamente. Todo o processamento acontece localmente, sem enviar dados a nenhum servidor. Abra o painel Network das ferramentas de desenvolvedor do navegador para confirmar que nenhuma requisição externa é feita durante o processo.
Casos de uso
- Depuração de JWT: decodifique os segmentos header e payload do JWT (formato Base64URL) para inspecionar o conteúdo das claims do token
- Basic Auth: codifique username:password para gerar credenciais de autenticação HTTP Basic
- Desenvolvimento OAuth: gere o code_verifier ou valide o code_challenge em fluxos PKCE
- Depuração de API: codifique dados JSON ou decodifique o conteúdo de campos Base64 retornados por uma API
- Embutir imagens via Data URI: converta ícones pequenos para o formato data:image/...;base64,... e embuta em CSS/HTML
- Codificação de anexos de e-mail: codifique anexos binários no formato MIME Base64 para envio por e-mail
Como Usar
- Escolha o modo: clique em Encode (codificar) ou Decode (decodificar) para alternar a direção do processamento
- Escolha a variante: Standard (padrão), URL-Safe (JWT/OAuth) ou MIME (formato de e-mail com quebra a cada 76 caracteres)
- Insira o conteúdo: cole o texto ou a string Base64; o processamento acontece automaticamente em tempo real
- Acompanhe as estatísticas: na parte inferior são exibidos a contagem de caracteres e a taxa de expansão (a codificação aumenta o volume em cerca de 33%)
- Copie o resultado: copie com um clique a string Base64 ou o texto decodificado
Recursos
- Alternar Encode/Decode com um clique: troque livremente entre codificar e decodificar; a saída vira a entrada, suportando processamento cíclico
- Suporte a três conjuntos de caracteres: UTF-8 (chinês/japonês/emoji), ASCII e ISO-8859-1, com cobertura profissional para múltiplos cenários
- Saída em três variantes: Standard (padrão), URL-Safe (seguro para JWT/OAuth/PKCE) e MIME (padrão RFC 2045 com quebra a cada 76 caracteres)
- Estatísticas de volume em tempo real: mostra contagem de caracteres de entrada/saída e a taxa de expansão (Base64 aumenta o volume em cerca de 33%)
- Mensagens de erro claras: quando os caracteres estão fora do intervalo válido, mostra detalhes específicos em vez de um erro genérico
- Divisor arrastável: no desktop é possível ajustar a proporção das áreas de edição esquerda e direita para focar na tarefa atual
- Abas independentes no celular: usuários de smartphone e tablet alternam separadamente entre a área de entrada e a de saída, com experiência fluida
Exemplos de Código
Codificação Base64 em JavaScript (suporta UTF-8 em chinês)
// Encode (supports UTF-8 Chinese)
function b64Encode(str) {
return btoa(unescape(encodeURIComponent(str)));
}
// Decode (supports UTF-8 Chinese)
function b64Decode(str) {
return decodeURIComponent(escape(atob(str)));
}
// URL-Safe encode (for JWT / OAuth)
function b64UrlEncode(str) {
return btoa(unescape(encodeURIComponent(str)))
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
console.log(b64Encode('Hello 世界')); // SGVsbG8g5LiW55WM
console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界Codificação Base64 em Python
import base64
# Standard encode (UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode()) # SGVsbG8g5LiW55WM
# Standard decode
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded) # Hello 世界
# URL-Safe encode (for JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode()) # SGVsbG8g5LiW55WM (no padding, must be removed manually)
# Remove padding (standard JWT practice)
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)Codificação Base64 em Java
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
String text = "Hello 世界";
// Standard encode
String encoded = Base64.getEncoder()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
System.out.println(encoded); // SGVsbG8g5LiW55WM
// Standard decode
String decoded = new String(
Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
System.out.println(decoded); // Hello 世界
// URL-Safe encode (for JWT / URL)
String urlSafe = Base64.getUrlEncoder().withoutPadding()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
System.out.println(urlSafe);
// MIME encode (76-character line breaks)
String mime = Base64.getMimeEncoder()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
}
}Perguntas frequentes
Codificação Base64 é a mesma coisa que criptografia?
Não. O Base64 apenas converte texto em outra representação reversível; qualquer pessoa pode decodificá-lo de volta ao texto original. Se envolve dados sensíveis (senhas, tokens), use um esquema de criptografia de verdade, como o AES. O Base64 serve apenas para conversão de formato de dados, facilitando o transporte de dados binários por sistemas baseados em texto.
Ferramenta de criptografia AESDe quanto é o aumento de volume após a codificação Base64?
A codificação Base64 aumenta o volume dos dados originais em cerca de 33%. Isso acontece porque cada 3 bytes (24 bits) são codificados em 4 caracteres Base64. Por exemplo, um texto de 100 bytes passa a ter aproximadamente 133 bytes após a codificação. A parte inferior da ferramenta mostra a taxa de expansão em tempo real, para você avaliar o tamanho dos dados. Exemplo: `Hello` → `SGVsbG8=` (volume +33%).
Ferramenta de estatísticas Base64Qual a diferença entre as variantes Standard, URL-Safe e MIME?
Standard é o Base64 padrão, que usa os caracteres A-Z, a-z, 0-9, +, /. URL-Safe substitui +/ por -_, sendo adequado para parâmetros de URL e tokens JWT. O MIME insere quebras de linha a cada 76 caracteres, em conformidade com o padrão RFC 2045 para transmissão de e-mails, sendo ideal para anexos de e-mail e textos com várias linhas.
URL-Safe Base64MIME Base64Como decodificar o header ou payload de um JWT?
O JWT usa a codificação Base64URL (variante URL-Safe). Depois de selecionar o modo URL-Safe, basta colar o primeiro segmento (header) ou o segundo segmento (payload) do JWT para decodificá-lo. Atenção: o terceiro segmento do JWT é a assinatura e não deve ser decodificado nem validado por aqui.
Ferramenta JWTO que é o Padding (preenchimento) do Base64?
O resultado da codificação Base64 deve ter comprimento múltiplo de 4. Quando o tamanho da entrada não é múltiplo de 3, o final é preenchido com o caractere =. A variante URL-Safe não usa padding. A ferramenta lida automaticamente com o padding e também remove os caracteres = durante a decodificação.
Ferramenta de Padding Base64Por que btoa e atob em JavaScript não suportam chinês?
btoa e atob são APIs nativas do navegador que operam no conjunto Latin-1 (ISO-8859-1), onde cada caractere ocupa 1 byte. Os caracteres chineses ocupam 3 bytes em UTF-8, então passá-los diretamente gera erro. A solução é usar primeiro encodeURIComponent para converter o texto chinês para a sequência de bytes UTF-8 no formato %xx, depois usar unescape para transformá-lo em uma string Latin-1 e, por fim, aplicar btoa para codificar.
O que é o Data URI Scheme? Como embutir imagens com Base64?
Data URI é um formato URI que permite embutir dados diretamente em uma URL, com a sintaxe: `data:[<mediatype>][;base64],<data>`. Exemplo: `data:image/png;base64,iVBORw0KGgo...`. É muito usado para embutir pequenos ícones, imagens de fundo em CSS etc., reduzindo o número de requisições HTTP. Porém, o Base64 aumenta o volume em 33%, então só vale a pena para arquivos pequenos; arquivos grandes devem continuar usando URLs normais.
Ferramenta Data URIBase64 para imagemGlossário
- RFC 4648
- Padrão oficial de codificação Base16/Base32/Base64 publicado pelo IETF. Define dois alfabetos — Base64 padrão e Base64 URL-Safe — além de regras de padding, quebras de linha e tratamento de caracteres fora do alfabeto. É o padrão de fato atual para codificação Base64, substituindo o antigo RFC 3548.Ferramenta URL-Safe Base64Ferramenta de Padding Base64
- RFC 2045 (MIME)
- Padrão MIME (Multipurpose Internet Mail Extensions) que foi o primeiro a adotar o Base64 como codificação para o transporte de conteúdo em e-mails. Define que a codificação Base64 não pode ultrapassar 76 caracteres por linha, com quebras CRLF — conhecida como variante MIME Base64.Ferramenta MIME Base64
- Base64URL (URL-Safe Base64)
- Variante segura para URL definida na RFC 4648 §5. Substitui o + do Base64 padrão por - e o / por _, e normalmente omite o caractere de padding =. É amplamente usada em tokens JWT, OAuth PKCE, parâmetros de URL e nomes de arquivo.Ferramenta URL-Safe Base64Ferramenta JWT
- MIME Base64
- Variante de Base64 em conformidade com a RFC 2045, que insere um caractere de quebra de linha (CRLF) a cada 76 caracteres. É usada principalmente para o transporte de anexos de e-mail, pois o protocolo SMTP antigo tinha limites de comprimento por linha.Ferramenta MIME Base64
- Padding (preenchimento)
- O resultado da codificação Base64 deve ter comprimento múltiplo de 4. Quando a quantidade de bytes de entrada não é múltipla de 3, o final é preenchido com o caractere =. O Base64 padrão usa padding; o Base64URL normalmente o omite.Ferramenta de Padding Base64
- Alfabeto Base64
- Conjunto de 64 caracteres usados na codificação Base64. O alfabeto padrão é formado por: A-Z (26), a-z (26), 0-9 (10), + e / — totalizando 64 caracteres — mais o caractere de preenchimento =.
- btoa / atob
- APIs nativas do navegador para codificar e decodificar Base64. btoa (binary to ASCII) é usada para codificar; atob (ASCII to binary), para decodificar. Essas APIs suportam apenas o conjunto Latin-1; para tratar chinês é preciso combiná-las com transcodificação UTF-8.
- Data URI Scheme
- Formato URI que permite embutir arquivos pequenos diretamente em uma URL, no formato data:[<mediatype>][;base64],<data>. É usado para embutir pequenos ícones e imagens de fundo em CSS, reduzindo o número de requisições HTTP.Ferramenta Data URIBase64 para imagem
- HTTP Basic Authentication
- Forma de autenticação no protocolo HTTP em que o nome de usuário e a senha são unidos por dois-pontos, codificados em Base64 e enviados no cabeçalho de requisição Authorization. O formato é: Authorization: Basic <base64(username:password)>.Construtor de Auth Header
- Taxa de expansão do Base64
- Proporção em que o volume dos dados aumenta após a codificação Base64. Cada 3 bytes (24 bits) viram 4 caracteres Base64, então o volume cresce cerca de 33% (4/3 ≈ 1,333). Com padding, a taxa de expansão fica um pouco maior.
Comparação das três variantes do Base64
| Característica | Standard | URL-Safe | MIME |
|---|---|---|---|
| Caracteres especiais | + / | - _ | + / |
| Padding (=) | Usado | Geralmente omitido | Usado |
| Quebras de linha | Nenhuma | Nenhuma | A cada 76 caracteres |
| Padrão | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| Casos típicos | Data URI, codificação geral | JWT, parâmetros URL, nomes de arquivo | Anexos de e-mail, transmissão SMTP |
Tabela comparativa das codificações da família Base
| Codificação | Nº de caracteres | Conjunto de caracteres | Expansão de volume | Uso típico |
|---|---|---|---|---|
Base16 (Hex) | 16 | 0-9, A-F | 100% | Depuração, exibição de hashes |
Base32 | 32 | A-Z, 2-7 (sem ambiguidade) | 60% | DNS, chaves TOTP, QR codes |
Base58 | 58 | Remove 0/O/I/l confundíveis | 38% | Endereços Bitcoin, criptomoedas |
Base62 | 62 | A-Z, a-z, 0-9 | 34% | Encurtadores de URL, IDs |
Base64 | 64 | A-Z, a-z, 0-9, +, / | 33% | Data URI, MIME, JWT (variante URL-Safe) |
Authoritative References
- ReferenceRFC 4648 - Codificações Base16, Base32 e Base64
- ReferenceRFC 2045 - MIME Parte Um: Formato dos corpos de mensagem da Internet
- ReferenceRFC 7519 - JSON Web Token (JWT)
- ReferenceMDN Web Docs - btoa()
- ReferenceMDN Web Docs - atob()
- ReferenceWikipedia - Base64
- Comparação Segura de Strings
- Conversão Binária
- Cifra de César
- Código Morse
- Codificação/Decodificação Hexadecimal
- Vídeo para Base64
- Base64 para Vídeo
- Imagem para Base64
- Base64 para Imagem
- Texto para Base64
- Base64 para Texto
- Verificador de hash de arquivo
- Arquivo para Base64
- Base64 para Arquivo
- Áudio para Base64
- Base64 para Áudio
- Criptografar e descriptografar AES
- Criptografia DES
- Codificador e Decodificador Base32
- Codificar e decodificar Base58
- Codificação Base64
- Decodificação Base64
- Comparação Base64
- Dividir Base64
- Mesclar Base64 em várias linhas
- Formatação Base64
- Verificação de Formato Base64
- Codificação Base64 em lote
- Decodificação Base64 em Lote
- Limpeza de Base64
- Preenchimento Base64
- Estatísticas Base64
- Base64 para Hexadecimal
- Conversor Base64 DataURL
- Conversor Base64-Hex
- Codificador Base85
- Gerador e Verificador HMAC
- Derivação de Chave PBKDF2
- Hash MD5
- Hash SHA-256
- Hash SHA1
- Hash SHA512
- Ferramenta JWT
- Codificação e Decodificação HTML
- Escape Unicode
- Codificação URL
- Base64 URL Safe
- MIME Base64
- Ofuscador Java
- Ofuscador JS
- Ofuscador PHP
- Ofuscação Python