Codificar e descodificar Base64
Codifique texto ou ficheiros para Base64 e descodifique cadeias de volta para bytes no navegador. Inclui exemplos de padding, o alfabeto RFC 4648 e a variante segura para URL.
Todos os cálculos são executados no navegador. Nada do que você digita é enviado a um servidor.
Os resultados atualizam ao escrever. Ctrl/Cmd+Enter copia o resultado principal.
Resultado
—
Vista de bits
Mostrar o procedimento
A Codificação e decodificação Base64 converte bytes arbitrários numa cadeia ASCII usando o alfabeto RFC 4648, e inverte essa cadeia de volta para os bytes originais. O modo texto aceita uma codificação de caracteres como UTF-8; o modo ficheiro lê um upload através do FileReader do navegador e pode emitir um URI data: para incorporação. Codificar não é encriptação. Quem recebe a cadeia pode descodificá-la.
Toda a codificação e descodificação corre no seu navegador. Nada do que cola é enviado para um servidor.
Codificar texto ou um ficheiro para Base64
Codificar toma bytes brutos e escreve uma cadeia de A a Z, a a z, 0 a 9, mais, barra e padding =. Cole texto ou escolha um ficheiro, seleccione codificação de caracteres quando a fonte é texto, e leia a saída.
O modo ficheiro convém a imagens pequenas e documentos que devem viajar dentro de JSON, XML ou email sem um canal binário.
A saída é segura para transporte através de sistemas que corrompem binário arbitrário, como gateways de mail antigos ou copy-paste para XML. É mais longa que a entrada por desenho. Entrada vazia inválida não produz cadeia; a ferramenta espera por bytes antes de emitir caracteres.
Descodificar uma cadeia Base64 de volta para dados
Descodificar inverte a consulta ao alfabeto, reconstrói o fluxo de bits original e devolve texto ou um ficheiro descarregável. Caracteres de padding = no fim são significativos: marcam quantos bytes havia no grupo final incompleto. Caracteres fora do alfabeto causam um erro claro em vez de uma descodificação parcial silenciosa.
Espaço em branco é frequentemente ignorado para cadeias copiadas de certificados PEM ou corpos MIME ainda funcionarem. Uma cadeia que parece Base64 mas usa o alfabeto seguro para URL precisa do modo de descodificação seguro para URL, ou hífen e underscore serão rejeitados como ilegais no alfabeto standard.
Compreender como funciona a codificação Base64
Base64 processa entrada em blocos de três bytes (24 bits). Esses 24 bits dividem-se em quatro grupos de 6 bits. Cada valor de 6 bits é um índice de 0 a 63 no alfabeto de 64 caracteres. Três bytes de entrada tornam-se portanto quatro caracteres de saída.
Bytes: [ byte1 ][ byte2 ][ byte3 ]
Bits: aaaaaaaa bbbbbbbb cccccccc
Grupos: aaaaaa aabbbb bbbbcc cccccc
Chars: Char1 Char2 Char3 Char4
Quando restam menos de três bytes, o codificador ainda emite quatro caracteres mas acrescenta padding para o descodificador saber o comprimento original. O reagrupamento de bits é todo o algoritmo; não há checksum nem chave.
Codificar a palavra Dog passo a passo
A palavra Dog são três bytes ASCII, por isso preenche um grupo Base64 e codifica sem caracteres de padding. A saída fixa é RG9n. Percorrer os bytes para bits, reagrupar em índices de 6 bits, e ler o alfabeto RFC 4648 mostra porque esses quatro caracteres aparecem e como qualquer bloco de três bytes segue o mesmo caminho.
1. Escreva os bytes. D = 0x44 = 01000100 o = 0x6F = 01101111 g = 0x67 = 01100111
2. Concatene 24 bits. 01000100 01101111 01100111
3. Divida em grupos de 6 bits. 010001 000110 111101 100111
4. Converta cada grupo num índice decimal. 17, 6, 61, 39
5. Consulte o alfabeto. Índice 17 = R, 6 = G, 61 = 9, 39 = n
Resultado: RG9n. Descodificar RG9n devolve os três bytes originais e o texto Dog sob UTF-8 ou ASCII.
Compreender padding com o sinal de igual
Padding aparece quando a contagem de bytes não é múltiplo de três. Um byte sobrante produz dois caracteres do alfabeto e dois sinais =. Dois bytes sobrantes produzem três caracteres e um =. Os exemplos fixos Do → RG8= e Dogs → RG9ncw== mostram ambos os casos de resto ao lado da palavra de três bytes sem padding Dog.
| Entrada | Bytes | Codificado | Padding |
|---|---|---|---|
| Dog | 3 | RG9n | nenhum |
| Do | 2 | RG8= | um = |
| Dogs | 4 | RG9ncw== | dois = |
Do são dois bytes: 01000100 01101111. Depois do agrupamento de 6 bits só há bits suficientes para três caracteres significativos (RG8), e um padding = preenche a quarta posição. Dogs são quatro bytes: um grupo completo de três bytes codificando como RG9n, depois um resto de um byte codificando como cw==. Remover padding à mão sem ajustar o comprimento de bits quebra a descodificação; deixe os caracteres = no sítio ao colar.
Ler o alfabeto Base64
A RFC 4648 define 64 caracteres mais a marca de padding =. Índices 0 a 25 são A a Z, 26 a 51 são a a z, 52 a 61 são 0 a 9, índice 62 é +, e índice 63 é /.
O índice 0 é A, não 0, o que engana quem espera que dígitos liderem o alfabeto.
| Intervalo de índice | Caracteres |
|---|---|
| 0 a 25 | A a Z |
| 26 a 51 | a a z |
| 52 a 61 | 0 a 9 |
| 62 | + |
| 63 | / |
| padding | = |
O painel de alfabeto da calculadora lista a mesma tabela que o codificador usa, para um carácter suspeito poder ser verificado contra o conjunto standard. A cadeia completa é ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/.
Usar a variante Base64 segura para URL
O alfabeto seguro para URL (base64url) substitui + por - e / por _. Padding pode ser omitido em alguns protocolos. JSON Web Tokens usam esta variante para segmentos de token poderem ficar em URLs e cabeçalhos HTTP sem percent-encoding dos caracteres mais e barra.
Cadeias standard e seguras para URL não são intercambiáveis. Descodificar um payload JWT com o alfabeto standard falha em hífens. A ferramenta oferece um modo explícito seguro para URL tanto para codificar como descodificar. Percent-encoding de URL é um problema diferente; use a página Codificar e descodificar URL quando o objectivo for escape RFC 3986 em vez de Base64.
Contabilizar o aumento de tamanho
Cada três bytes tornam-se quatro caracteres, por isso o comprimento codificado é cerca de 4/3 da entrada, um aumento de 33 por cento antes de quebras de linha. Padding pode acrescentar um ou dois caracteres extra no grupo final. URIs de dados e anexos de email sentem este custo depressa: uma imagem de 300 KB torna-se cerca de 400 KB de texto.
encoded_length ≈ 4 × ceil(byte_length / 3)
Quebra de linha a 76 caracteres, comum em MIME, acrescenta bytes de newline por cima. Prefira anexos binários ou formatos comprimidos quando o tamanho importa; use Base64 quando o canal genuinamente não pode transportar bytes brutos.
Escolher uma codificação de caracteres
Base64 codifica bytes, não caracteres abstractos. As mesmas letras produzem bytes diferentes sob UTF-8, UTF-16, Shift JIS ou Big5. Descodificar e depois interpretar com o charset errado produz mojibake mesmo quando a camada Base64 estava perfeita, por isso o charset do modo texto deve corresponder ao produtor na codificação e ao consumidor na descodificação.
| Charset | Uso típico |
|---|---|
| UTF-8 | Predefinição para texto moderno e APIs |
| Windows-1252 | Texto europeu ocidental legado |
| UTF-16 LE / BE | Alguns payloads Windows e Java |
| Shift JIS | Texto japonês antigo |
| Big5 | Texto chinês tradicional antigo |
Para a palavra Dog, ASCII e UTF-8 produzem os mesmos três bytes, por isso RG9n é idêntico. Texto não ASCII diverge. Escolha o charset que corresponde ao produtor antes de codificar, e o mesmo charset depois de descodificar, ou a ida e volta parecerá um bug Base64 quando o erro está a montante.
Perguntas frequentes
Base64 é encriptação?
Não. Base64 é uma codificação que qualquer pessoa pode inverter com o alfabeto público. Não esconde nada. Use um algoritmo criptográfico real quando a confidencialidade é necessária; use Base64 quando um canal precisa de bytes seguros para ASCII.
Por que a saída Base64 termina com sinais de igual?
Os caracteres = são padding. Marcam que o grupo final de entrada tinha um ou dois bytes em vez de três. Do codifica para RG8= e Dogs para RG9ncw==. Mantenha o padding ao descodificar a menos que o protocolo documente que foi removido.
Em que codifica Dog?
Dog codifica para RG9n sem padding, porque três bytes preenchem um grupo Base64 exactamente. O reagrupamento de bits passo a passo está no exemplo trabalhado nesta página.
Qual é a diferença entre Base64 standard e seguro para URL?
Base64 seguro para URL usa - e _ em vez de + e /. JWTs e algumas incorporações de nomes de ficheiro usam o alfabeto seguro para URL. Descodificar com o alfabeto errado falha nesses caracteres substituídos.
Quanto é Base64 maior que o original?
Cerca de um terço maior. Três bytes tornam-se quatro caracteres, por isso a razão é 4/3 antes de padding e quebras de linha. Um payload de 3.000 bytes torna-se 4.000 caracteres de Base64.
Base64 pode codificar um ficheiro, não só texto?
Sim. O modo ficheiro lê o upload no navegador e codifica os seus bytes brutos. O caminho inverso descodifica para um blob descarregável. Ficheiros grandes aumentam o uso de memória no separador; mantenha uploads modestos.
Por que o texto descodificado parece errado depois de uma descodificação correcta?
A camada Base64 restaurou os bytes, mas a codificação de caracteres usada para interpretar esses bytes não corresponde ao produtor. Tente UTF-8 primeiro, depois o charset que o sistema de origem realmente usa.
Esta ferramenta carrega segredos colados?
Não. Codificação e descodificação correm localmente. Chaves API, tokens e fragmentos de certificado colados na caixa não são enviados para um servidor. Essa promessa corresponde à regra de desenho para todas as páginas de codificação no Quick Calculators.
Base64 é o mesmo que codificação de URL?
Não. Base64 mapeia binário para um alfabeto de 64 caracteres para transporte. Codificação de URL (percent-encoding) escapa caracteres reservados dentro de URIs segundo RFC 3986. Resolvem problemas diferentes e não são substitutos um do outro.
Que RFC define o alfabeto?
A RFC 4648 define os alfabetos Base64 standard e seguro para URL e as regras de padding usadas aqui. Documentos mais antigos como a RFC 2045 descrevem Base64 no contexto MIME com mecânica semelhante.
Resumo
A Codificação e decodificação Base64 mapeia bytes para o alfabeto RFC 4648 em grupos de 6 bits e inverte o processo localmente no navegador. Dog torna-se RG9n, Do torna-se RG8=, e Dogs torna-se RG9ncw==, ilustrando padding para restos de um e dois bytes.
O alfabeto seguro para URL troca +// por -/_, a saída cresce cerca de um terço, e a escolha de charset decide que bytes o modo texto alimenta ao codificador. Nada colado é carregado.