Base64 Encoder/Decoder
Codifique e decodifique textos em Base64 rapidamente. Suporta caracteres UTF-8.
📚 O que é Base64?
Base64 é um método de codificação que converte dados binários em uma representação textual usando apenas 64 caracteres ASCII imprimíveis (A-Z, a-z, 0-9, + e /). O nome "Base64" vem justamente desses 64 caracteres do alfabeto de codificação.
A codificação funciona agrupando bytes em blocos de 24 bits (3 bytes) e dividindo-os em 4 grupos de 6 bits cada. Cada grupo de 6 bits pode representar um valor de 0 a 63, correspondendo a um dos 64 caracteres do alfabeto Base64.
🔧 Como funciona a codificação?
Processo de Codificação (Encode):
- O texto é convertido para bytes (usando UTF-8)
- Os bytes são agrupados em blocos de 3 (24 bits)
- Cada bloco é dividido em 4 grupos de 6 bits
- Cada grupo de 6 bits é mapeado para um caractere Base64
- Se necessário, = é adicionado como padding no final
Processo de Decodificação (Decode):
- Cada caractere Base64 é convertido de volta para 6 bits
- Os grupos de 6 bits são reagrupados em bytes de 8 bits
- Os bytes são convertidos de volta para texto
💼 Casos de Uso Comuns
- Emails (MIME): Anexos de email são codificados em Base64 para transmissão
- Data URIs: Imagens embutidas em HTML/CSS usando data:image/png;base64,...
- APIs REST: Transmissão de dados binários em JSON (que só aceita texto)
- Autenticação: HTTP Basic Auth codifica credenciais em Base64
- Tokens JWT: O payload de tokens JWT é codificado em Base64URL
- Certificados: Certificados SSL/TLS usam formato PEM (Base64)
❓ Perguntas Frequentes
Base64 é criptografia?
Não! Base64 é apenas codificação, não criptografia. Qualquer pessoa pode decodificar Base64 facilmente. Nunca use Base64 para proteger dados sensíveis.
Por que o texto codificado fica maior?
Base64 aumenta o tamanho em aproximadamente 33%. Cada 3 bytes de entrada geram 4 caracteres de saída, pois estamos representando 8 bits com apenas 6 bits por caractere.
Para que serve o caractere = no final?
O = é usado como padding quando o número de bytes não é divisível por 3. Pode haver 0, 1 ou 2 caracteres = no final.
Meus dados são seguros?
Sim! Todo o processamento é feito localmente no seu navegador. Nenhum dado é enviado para nossos servidores.
📝 Exemplos de Código
Veja como implementar codificação e decodificação Base64 em diferentes linguagens de programação:
💛 JavaScript (Node.js e Browser)
// Codificar para Base64 (com suporte a UTF-8)
const texto = "Olá, mundo! 🌍";
const encoded = btoa(unescape(encodeURIComponent(texto)));
console.log(encoded); // "T2zDoSwgbXVuZG8hIPCfjI0="
// Decodificar de Base64
const decoded = decodeURIComponent(escape(atob(encoded)));
console.log(decoded); // "Olá, mundo! 🌍"
// Node.js (usando Buffer)
const encodedNode = Buffer.from(texto).toString('base64');
const decodedNode = Buffer.from(encodedNode, 'base64').toString('utf8');🐍 Python
import base64
texto = "Olá, mundo! 🌍"
# Codificar para Base64
encoded = base64.b64encode(texto.encode('utf-8')).decode('utf-8')
print(encoded) # "T2zDoSwgbXVuZG8hIPCfjI0="
# Decodificar de Base64
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded) # "Olá, mundo! 🌍"🟣 C# (.NET)
using System;
using System.Text;
string texto = "Olá, mundo! 🌍";
// Codificar para Base64
byte[] bytes = Encoding.UTF8.GetBytes(texto);
string encoded = Convert.ToBase64String(bytes);
Console.WriteLine(encoded); // "T2zDoSwgbXVuZG8hIPCfjI0="
// Decodificar de Base64
byte[] decodedBytes = Convert.FromBase64String(encoded);
string decoded = Encoding.UTF8.GetString(decodedBytes);
Console.WriteLine(decoded); // "Olá, mundo! 🌍"☕ Java
import java.util.Base64;
import java.nio.charset.StandardCharsets;
String texto = "Olá, mundo! 🌍";
// Codificar para Base64
String encoded = Base64.getEncoder()
.encodeToString(texto.getBytes(StandardCharsets.UTF_8));
System.out.println(encoded); // "T2zDoSwgbXVuZG8hIPCfjI0="
// Decodificar de Base64
byte[] decodedBytes = Base64.getDecoder().decode(encoded);
String decoded = new String(decodedBytes, StandardCharsets.UTF_8);
System.out.println(decoded); // "Olá, mundo! 🌍"🐘 PHP
<?php
$texto = "Olá, mundo! 🌍";
// Codificar para Base64
$encoded = base64_encode($texto);
echo $encoded; // "T2zDoSwgbXVuZG8hIPCfjI0="
// Decodificar de Base64
$decoded = base64_decode($encoded);
echo $decoded; // "Olá, mundo! 🌍"
?>⚠️ Erros Comuns em Base64
Confundir codificação com criptografia
Base64 não é criptografia! Qualquer pessoa pode decodificar. Não use para esconder senhas ou dados sensíveis. Para segurança, use criptografia real (AES, RSA).
Problemas com caracteres especiais
// ❌ Errado - btoa() não suporta Unicode diretamente
btoa("Olá! 🌍"); // Erro: caractere não Latin-1
// ✅ Correto - codifique UTF-8 primeiro
btoa(unescape(encodeURIComponent("Olá! 🌍")));
// Ou em Node.js:
Buffer.from("Olá! 🌍").toString("base64");Strings Base64 inválidas
// Causas comuns de erro ao decodificar:
// 1. Caracteres inválidos (só A-Z, a-z, 0-9, +, /, =)
// 2. Múltiplas codificações (Base64 de Base64)
// 3. Padding incorreto (= no final)
// 4. String truncada
// Válido: "SGVsbG8gV29ybGQh"
// Inválido: "SGVsbG8gV29ybGQh!" (! não é Base64)Base64 URL-safe vs Padrão
// Base64 padrão usa + e / que precisam de URL encoding
// Base64 URL-safe substitui: + → - e / → _
// Padrão: "a+b/c="
// URL-safe: "a-b_c="
// Converter para URL-safe:
base64.replace(/\+/g, '-').replace(/\//g, '_');