Ir para o conteúdo
Calcuplay
Tecnologia

Codificador e decodificador Base64

O Base64 escreve qualquer dado com 64 caracteres seguros: "Man" vira "TWFu". Cada 3 bytes viram 4 caracteres, então o resultado fica cerca de um terço mais longo.

Seu texto fica no seu aparelho: não é enviado nem colocado no endereço da página.

Resultado

T2zDoSwgcGVzc29hbCE=

14 bytes ↔ 20 caracteres Base64

3 bytes = 24 bits = 4 caracteres de 6 bits

Desafio rápido

Sequência 0Recorde 0

Teste-se: cada resposta é calculada pela ferramenta, e as opções erradas são as armadilhas mais comuns.

Como funciona

Fórmula: Caracteres = 4 × ⌈bytes ÷ 3⌉

Primeiro o texto é transformado em bytes com UTF-8: um byte para uma letra sem acento, de dois a quatro para letras acentuadas e emojis. Os bytes são lidos de 3 em 3, ou seja, 24 bits cortados em 4 grupos de 6 bits; cada grupo, de 0 a 63, escolhe um caractere entre A–Z, a–z, 0–9, + e / (RFC 4648). Quando o último grupo tem só 1 ou 2 bytes, o sinal "=" completa o resultado até um múltiplo de 4. A variante para URL usa - e _ no lugar de + e /.

Exemplos práticos

  • "Man"

    3 bytes → 4 caracteres: TWFu.

  • "Ma"

    2 bytes: um = completa o grupo, TWE=.

  • "é"

    2 bytes em UTF-8: w6k=.

Erros comuns

  • Usar Base64 para proteger uma senha.

    Qualquer pessoa decodifica sem chave: não é criptografia.

  • Achar que o tamanho não muda.

    30 bytes dão 40 caracteres: um terço a mais.

  • Colocar Base64 padrão numa URL: "??>" dá Pz8+, e ali o + vira um espaço.

    Use a variante para URL: Pz8-.

Vetores de teste da RFC 4648

Vetores de teste da RFC 4648
TextoBase64
""""
"f""Zg=="
"fo""Zm8="
"foo""Zm9v"
"foob""Zm9vYg=="
"fooba""Zm9vYmE="
"foobar""Zm9vYmFy"

Tamanho depois de codificado

Tamanho depois de codificado
BytesCaracteres
14
24
34
1016
100136
1.0001.336
1.000.0001.333.336

Perguntas frequentes

Base64 é criptografia?

Não. Qualquer pessoa pode decodificá-lo, sem chave: ele só serve para os dados viajarem como texto (e-mails, JSON, URLs). Nunca o use para esconder uma senha.

Por que meu Base64 termina com = ou ==?

O tamanho não era múltiplo de 3 bytes: um = indica que o último grupo tinha 2 bytes, e == que tinha só 1.

Por que o texto codificado fica mais longo?

Cada 3 bytes viram 4 caracteres, um terço a mais, sem contar os = do fim. Letras acentuadas e emojis ocupam de 2 a 4 bytes em UTF-8, então crescem ainda mais.

Calculadoras de tecnologia

Calculadoras de tecnologia

Outras calculadoras