Base64 Encoder and Decoder
A free online Base64 encoder and decoder for quick encoding and decoding, with convenient features like UTF-8 support, secure copy, and clear.
Codificar (texto → Base64)
Decodificar (Base64 → texto)
Instruções de uso
Base64 codifica dados binários em ASCII para transmissão e armazenamento. O tamanho aumenta aproximadamente 33%.
Codificação: converter texto simples em Base64 para transmissão mais segura.
Decodificação: recuperar o texto original a partir de uma string Base64.
Recursos
- Seguro para UTF-8: trata corretamente caracteres não ASCII (usando encodeURIComponent/unescape).
- Suporte URL-seguro: alternar facilmente + / → - _, opcionalmente remover preenchimento =.
- Pré-processamento na decodificação: ignorar espaços em branco, restaurar automaticamente URL-seguro e completar =.
- Interatividade em tempo real: processamento automático ao digitar, com estatísticas de comprimento e taxa de crescimento.
- Usabilidade: cópia rápida, preenchimento cruzado de resultados, acessível por teclado e otimizado para mobile.
- Estilo unificado: sem classes Tailwind dark:, totalmente baseado no tema DaisyUI.
O que é Base64
Base64 é um método de codificação de dados binários em texto ASCII, amplamente utilizado para transmitir imagens ou conteúdos de arquivos em protocolos de texto como JSON, XML e HTTP.
Ele mapeia cada 3 bytes em 4 caracteres imprimíveis, geralmente aumentando o tamanho em cerca de 33%.
O Base64 padrão usa A–Z a–z 0–9 + / e o caractere de preenchimento =; a variante URL-safe substitui + / por - _, evitando problemas de escape em URLs.
Usos comuns
- Inserir imagens ou pequenos arquivos como Data URI.
- Transferir dados binários entre cliente e servidor (como criptogramas ou fluxos compactados).
- Tornar texto imprimível, evitando problemas com codificações inconsistentes ou caracteres invisíveis.
Perguntas frequentes e observações
- Conjunto de caracteres: em ambientes web, primeiro processe o texto em UTF-8 (esta ferramenta já inclui isso automaticamente).
- URL-safe: para parâmetros ou caminhos de URL, recomenda-se usar a variante URL-safe e considerar remover os caracteres de preenchimento.
- Preenchimento: algumas implementações permitem omitir o =; ao decodificar, é necessário completar automaticamente até múltiplos de 4.
- Quebras de linha: Base64 MIME pode conter quebras de linha; ao decodificar, marque "Ignorar caracteres em branco".
Como realizar codificação e decodificação Base64 por linguagens de programação
JavaScript
Texto → Base64 (UTF-8 seguro)
const encoded = btoa(unescape(encodeURIComponent(text)));
// URL-seguro
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Decodificar (Base64 → Texto)
// Pré-processamento: substitua -_ por +/
let b64 = input.replace(/-/g, '+').replace(/_/g, '/');
if (b64.length % 4 !== 0) b64 = b64.padEnd(b64.length + (4 - (b64.length % 4)), '=');
const text = decodeURIComponent(escape(atob(b64)));
PHP
Codificar (Texto → Base64)
$encoded = base64_encode($text);
// URL-seguro
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Decodificar (Base64 → Texto)
$b64 = strtr($input, '-_', '+/');
// Completar automaticamente '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Codificar (Texto → Base64)
import base64
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Codificação URL-segura (sem preenchimento)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Decodificar (Base64 → Texto)
import base64
def b64_decode(s: str) -> str:
s = s.replace('-','+').replace('_','/')
s += '=' * (-len(s) % 4) # Completar automaticamente '='
return base64.b64decode(s).decode('utf-8')
Go
Codificar (Texto → Base64)
import (
"encoding/base64"
)
enc := base64.StdEncoding.EncodeToString([]byte(text))
// Codificação URL-segura (sem preenchimento)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Decodificar (Base64 → Texto)
import (
"encoding/base64"
)
decBytes, err := base64.StdEncoding.DecodeString(enc)
// Decodificação URL-segura (sem preenchimento)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Codificar (Texto → Base64)
use base64::{engine::general_purpose, Engine as _};
let enc = general_purpose::STANDARD.encode(text.as_bytes());
// Codificação URL-segura (sem preenchimento)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
Decodificar (Base64 → Texto)
use base64::{engine::general_purpose, Engine as _};
let dec_bytes = general_purpose::STANDARD.decode(&enc).unwrap();
let dec = String::from_utf8(dec_bytes).unwrap();
let url_dec = String::from_utf8(
general_purpose::URL_SAFE_NO_PAD.decode(&url_enc).unwrap()
).unwrap();
Dependência Cargo: base64 = "0.22"
Java
Codificar (Texto → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// Codificação URL-segura (sem preenchimento)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
Decodificar (Base64 → Texto)
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String dec = new String(Base64.getDecoder().decode(enc), StandardCharsets.UTF_8);
String urlDec = new String(Base64.getUrlDecoder().decode(urlEnc), StandardCharsets.UTF_8);