logo
GeekFormat

Codificação Base64

Texto de entrada
0 caracteres

Ferramenta gratuita de codificação e decodificação Base64 online. Suporta conjuntos de caracteres UTF-8/ASCII/ISO-8859-1, com três variantes: Standard, URL-Safe e MIME. Exibe a taxa de expansão de volume em tempo real, e as quebras de linha MIME estão em conformidade com o padrão RFC 2045.

Sugestões Relacionadas

Casos de uso

  • Depuração JWT: decodifique os segmentos header e payload do JWT (formato Base64URL) para ver o conteúdo das declarações do Token
  • Basic Auth: codifique username:password como credenciais de autenticação HTTP Basic
  • Desenvolvimento OAuth: gere code_verifier ou verifique code_challenge em cenários PKCE
  • Depuração de API: codifique dados JSON ou decodifique o conteúdo dos campos Base64 retornados pela API
  • Incorporação de imagens Data URI: converta ícones pequenos para o formato data:image/...;base64,... para incorporar em CSS/HTML
  • Codificação de anexos de e-mail: codifique anexos binários de e-mail no formato MIME Base64

Recursos

  • Alternância Encode/Decode com um clique: alterne livremente entre os modos de codificação e decodificação, a saída torna-se diretamente entrada para suportar processamento cíclico
  • Suporte a três conjuntos de caracteres: UTF-8 (chinês/japonês/emoji), ASCII, ISO-8859-1, cobertura profissional para vários cenários
  • Saída de três variantes: Standard (padrão), URL-Safe (seguro para JWT/OAuth/PKCE), MIME (padrão RFC 2045 com quebras de 76 caracteres)
  • Estatísticas de volume em tempo real: exibe o número de caracteres de entrada/saída e a taxa de expansão em tempo real (Base64 aumenta o volume em aproximadamente 33%)
  • Mensagens de erro amigáveis: quando os caracteres estão fora do intervalo, exibe informações de erro específicas em vez de um erro simples
  • Divisor arrastável: no PC você pode ajustar a proporção das áreas de edição esquerda e direita para se concentrar na tarefa atual
  • Guias independentes para celular: usuários de telefone/tablet alternam independentemente entre a área de entrada e saída para uma experiência fluida

Como Usar

  1. Selecione o modo: clique em Encode (codificar) ou Decode (decodificar) para alterar a direção de processamento
  2. Selecione a variante: Standard (padrão), URL-Safe (JWT/OAuth), MIME (formato de e-mail com quebras de 76 caracteres)
  3. Insira o conteúdo: cole o texto ou a string Base64, ela será processada automaticamente em tempo real
  4. Veja as estatísticas: na parte inferior são exibidos o número de caracteres e a taxa de expansão de volume (a codificação aumenta o volume em aproximadamente 33%)
  5. Copie o resultado: copie com um clique a string Base64 ou o texto decodificado

Perguntas frequentes

Codificação Base64 é a mesma coisa que criptografia?

Não. O Base64 apenas converte texto em outra forma de representação reversível; qualquer pessoa pode decodificá-lo de volta ao texto original. Se se tratar de dados sensíveis (senhas, tokens), use um esquema de criptografia real como o AES. O Base64 é adequado apenas para conversão de formato de dados, facilitando a transmissão de dados binários por sistemas de texto.

Ferramenta de criptografia AES

Quanto o volume aumenta após a codificação Base64?

A codificação Base64 aumenta o volume dos dados originais em aproximadamente 33%. Isso ocorre porque cada 3 bytes (24 bits) são codificados em 4 caracteres Base64. Por exemplo, um texto de 100 bytes terá aproximadamente 133 bytes após a codificação. A parte inferior da ferramenta exibe a taxa de expansão em tempo real para que você possa avaliar o tamanho dos dados. Exemplo: `Hello` → `SGVsbG8=` (volume +33%).

Ferramenta de estatísticas Base64

Qual é a diferença entre as três 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 -_, tornando-o adequado para parâmetros URL e tokens JWT. MIME insere quebras de linha a cada 76 caracteres, em conformidade com o padrão de transmissão de e-mail RFC 2045, adequado para anexos de e-mail e texto de várias linhas.

URL-Safe Base64MIME Base64

Como decodificar o header ou payload de um JWT?

O JWT usa a codificação Base64URL (variante URL-Safe). Após selecionar o modo URL-Safe, basta colar o primeiro segmento (header) ou o segundo segmento (payload) do JWT para decodificá-lo. Observe que o terceiro segmento do JWT é a assinatura e não deve ser decodificado ou verificado aqui.

Ferramenta JWT

O que é o Padding (preenchimento) do Base64?

O comprimento do resultado da codificação Base64 deve ser um múltiplo de 4. Quando o comprimento da entrada não é um múltiplo de 3, ele é preenchido com o caractere =. A variante URL-Safe não usa padding. A ferramenta processa automaticamente o padding e também remove automaticamente os caracteres = durante a decodificação.

Ferramenta de Padding Base64

Por que btoa e atob em JavaScript não suportam chinês?

btoa e atob são APIs nativas do navegador que operam com o conjunto de caracteres Latin-1 (ISO-8859-1), onde cada caractere ocupa 1 byte. Caracteres chineses ocupam 3 bytes em UTF-8, portanto, passá-los diretamente causará um erro. A solução é usar primeiro encodeURIComponent para converter o chinês para o formato %xx da sequência de bytes UTF-8, depois usar unescape para convertê-lo em uma string Latin-1 e, finalmente, usar btoa para codificar.

O que é o Data URI Scheme? Como incorporar imagens com Base64?

Data URI é um formato URI que permite incorporar dados diretamente em uma URL, com a sintaxe: `data:[<mediatype>][;base64],<data>`. Por exemplo: `data:image/png;base64,iVBORw0KGgo...`. É frequentemente usado para incorporar ícones pequenos, imagens de fundo CSS etc., reduzindo o número de solicitações HTTP. Mas o Base64 aumenta o volume em 33%, portanto, é adequado apenas para arquivos pequenos; arquivos grandes devem usar URLs normais.

Ferramenta Data URIBase64 para imagem

O que é codificação Base64?

Base64 é um esquema de codificação binário-texto baseado em 64 caracteres ASCII imprimíveis, definido pela primeira vez 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 transmitidos com segurança por sistemas que suportam apenas texto, como cabeçalhos HTTP, payloads JSON, documentos XML ou parâmetros de consulta URL.

**Base64 não é criptografia**, ele fornece apenas conversão de formato de dados, qualquer pessoa pode decodificá-lo facilmente. Se você precisar proteger dados sensíveis, use um esquema de criptografia real como o AES. Os usos típicos do Base64 incluem: HTTP Basic Authentication (`Authorization: Basic dXNlcjpwYXNz`), segmentos header e payload de tokens JWT (formato Base64URL), Data URI (`data:image/png;base64,...`), codificação MIME de anexos de e-mail etc.

**URL-Safe Base64** (RFC 4648 §5) substitui os +/ do Base64 padrão por -_ e geralmente omite o padding =. Isso permite que o resultado codificado apareça 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 RFC 2045 que especifica que cada linha não deve exceder 76 caracteres. Quando o conteúdo Base64 é usado em e-mails ou certos cenários que exigem exibição com quebras de linha, a variante MIME insere automaticamente caracteres de quebra de linha (`\n`) a cada 76 caracteres. Este é o formato padrão para transmissão de anexos de e-mail.

A ferramenta usa a **API nativa btoa/atob** do navegador, combinada com lógica de processamento segura para UTF-8, garantindo que caracteres multibyte como chinês, japonês e emoji sejam codificados corretamente. Todos os cálculos são concluídos localmente, os dados não são enviados a nenhum servidor. Abra o painel de rede das ferramentas de desenvolvedor do navegador para verificar que não há solicitações externas durante todo o processo.

术语表

RFC 4648
Padrão oficial de codificação Base16/Base32/Base64 publicado pelo IETF. Define dois alfabetos: Base64 padrão e Base64 URL-Safe, bem como regras para padding, quebras de linha, tratamento de caracteres não alfabéticos etc. É 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 Multipurpose Internet Mail Extensions (MIME). Foi o primeiro a adotar o Base64 como método de codificação de transmissão de conteúdo de e-mail. Estabelece que a codificação Base64 não deve exceder 76 caracteres por linha e é separada por 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 geralmente omite o caractere de padding =. É amplamente utilizada em cenários como tokens JWT, OAuth PKCE, parâmetros URL e nomes de arquivo.Ferramenta URL-Safe Base64Ferramenta JWT
MIME Base64
Variante Base64 em conformidade com o padrão RFC 2045, inserindo um caractere de quebra de linha (CRLF) a cada 76 caracteres. É usada principalmente para transmissão de anexos de e-mail, porque o protocolo SMTP antigo tinha limites no comprimento de uma única linha.Ferramenta MIME Base64
Padding (preenchimento)
O comprimento do resultado da codificação Base64 deve ser um múltiplo de 4. Quando o número de bytes de entrada não é um múltiplo de 3, o final é preenchido com o caractere =. O Base64 padrão usa padding, o Base64URL geralmente o omite.Ferramenta de Padding Base64
Alfabeto Base64
O conjunto de 64 caracteres usados na codificação Base64. O alfabeto Base64 padrão é: A-Z (26), a-z (26), 0-9 (10), +, /, total de 64 caracteres, mais o caractere de preenchimento =.
btoa / atob
APIs nativas do navegador para codificação/decodificação Base64. btoa (binary to ASCII) é usado para codificar, atob (ASCII to binary) para decodificar. Observe que essas APIs suportam apenas o conjunto de caracteres Latin-1. Para processar chinês, você deve combiná-las com transcodificação UTF-8.
Data URI Scheme
Um formato URI que permite incorporar arquivos pequenos diretamente em uma URL, no formato data:[<mediatype>][;base64],<data>. É frequentemente usado para incorporar ícones pequenos e imagens de fundo CSS para reduzir solicitações HTTP.Ferramenta Data URIBase64 para imagem
HTTP Basic Authentication
Um método de autenticação no protocolo HTTP. O nome de usuário e a senha são concatenados com dois pontos, codificados em Base64 e transmitidos no cabeçalho de solicitação Authorization. O formato é: Authorization: Basic <base64(username:password)>.Construtor de cabeçalhos Auth
Taxa de expansão Base64
A proporção em que o volume de dados aumenta após a codificação Base64. Cada 3 bytes (24 bits) são codificados em 4 caracteres Base64, portanto, o volume aumenta em aproximadamente 33% (4/3 ≈ 1,333). Com padding, a taxa de expansão é ligeiramente maior.

Comparação das três variantes do Base64

CaracterísticaStandardURL-SafeMIME
Caracteres especiais+ /- _+ /
Padding(=)UsadoGeralmente omitidoUsado
Quebras de linhaNenhumaNenhumaQuebra a cada 76 caracteres
PadrãoRFC 4648 §4RFC 4648 §5RFC 2045
Casos típicosData URI, codificação geralJWT, parâmetros URL, nomes de arquivoAnexos de e-mail, transmissão SMTP

Tabela comparativa das codificações da série Base

CodificaçãoNúm. de caracteresCaracterísticas do conjunto de caracteresExpansão de volumeUso típico
Base16 (Hex)160-9, A-F100%Depuração, exibição de hashes
Base3232A-Z, 2-7(maiúsculas sem confusão)60%DNS, chaves TOTP, códigos QR
Base5858Exclui caracteres confundíveis 0/O/I/l38%Endereços Bitcoin, criptomoedas
Base6262A-Z, a-z, 0-934%Encurtadores de URL, codificação de IDs
Base6464A-Z, a-z, 0-9, +, /33%Data URI, MIME, JWT(variante URL-Safe)

Code Examples

Codificação Base64 em JavaScript (suporta chinês UTF-8)

// 编码(支持 UTF-8 中文)
function b64Encode(str) {
  return btoa(unescape(encodeURIComponent(str)));
}

// 解码(支持 UTF-8 中文)
function b64Decode(str) {
  return decodeURIComponent(escape(atob(str)));
}

// URL-Safe 编码(用于 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 编码(UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode())  # SGVsbG8g5LiW55WM

# Standard 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello 世界

# URL-Safe 编码(用于 JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode())  # SGVsbG8g5LiW55WM(无 padding 需手动去除)

# 去除 padding(JWT 标准做法)
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 编码
        String encoded = Base64.getEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(encoded); // SGVsbG8g5LiW55WM

        // Standard 解码
        String decoded = new String(
            Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
        System.out.println(decoded); // Hello 世界

        // URL-Safe 编码(用于 JWT / URL)
        String urlSafe = Base64.getUrlEncoder().withoutPadding()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(urlSafe);

        // MIME 编码(76字符换行)
        String mime = Base64.getMimeEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
    }
}

Authoritative References