Codificador/Decodificador Base64
Codifique e decodifique strings Base64 rapidamente, suportando conversão de texto e arquivo
O que é Base64?
Base64 é um esquema de codificação que representa dados binários usando 64 caracteres ASCII imprimíveis. Esses caracteres incluem letras maiúsculas e minúsculas, números e alguns símbolos especiais. Base64 é amplamente usado em cenários onde dados binários precisam ser transmitidos através de canais apenas de texto, como anexos de e-mail e parâmetros de URL. O esquema de codificação Base64 foi originalmente definido na RFC 4648 e na especificação MIME (RFC 2045).
Princípio do Algoritmo de Codificação Base64:
O processo de codificação Base64 pode ser dividido nas seguintes etapas:
- Divida os dados de entrada em grupos de 3 bytes cada
- Reorganize esses 3 bytes (24 bits) em 4 grupos de 6 bits cada
- Mapeie cada valor de 6 bits (intervalo 0-63) como um índice para o conjunto de caracteres Base64
- Se o último grupo tiver menos de 3 bytes, preencha com 0 bits e adicione o número correspondente de sinais de igual (=) como preenchimento no final do resultado
Conjunto de Caracteres Base64: A-Z, a-z, 0-9, +, /
Caractere de Preenchimento: =
Exemplo de Conversão:
Código ASCII para o texto "Man": 77 97 110
Representação binária: 01001101 01100001 01101110
Reagrupado em 6 bits: 010011 010110 000101 101110
Valores decimais: 19 22 5 46
Resultado Base64: T W F u
Implementação Simplificada em JavaScript:
// Base64 encoding implementation example (simplified)
function base64Encode(str) {
// Base64 character set
const base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
let result = '';
let i = 0;
// Process every 3 characters as a group
while (i < str.length) {
const char1 = str.charCodeAt(i++);
const char2 = i < str.length ? str.charCodeAt(i++) : 0;
const char3 = i < str.length ? str.charCodeAt(i++) : 0;
// Convert 3 8-bit bytes into 4 6-bit indices
const triplet = (char1 << 16) + (char2 << 8) + char3;
// Extract 4 6-bit values from the triplet
const index1 = (triplet >> 18) & 0x3F;
const index2 = (triplet >> 12) & 0x3F;
const index3 = (triplet >> 6) & 0x3F;
const index4 = triplet & 0x3F;
// Add padding based on the original data length
if (i - 3 > str.length) {
result += base64chars[index1] + base64chars[index2] + '==';
} else if (i - 2 > str.length) {
result += base64chars[index1] + base64chars[index2] + base64chars[index3] + '=';
} else {
result += base64chars[index1] + base64chars[index2] + base64chars[index3] + base64chars[index4];
}
}
return result;
}
Usos Comuns:
- Codificação de anexos de e-mail (padrão MIME)
- Transmissão segura de dados em URLs (usando variante Base64url, onde '+' e '/' são substituídos por '-' e '_')
- Incorporação de imagens binárias em HTML ou CSS (esquema de URI de dados)
- Armazenamento de dados simples como uma única string (como componentes de token JWT)
- Inclusão de dados binários em XML e JSON (evitando problemas de escape de caracteres especiais)
Recursos Avançados
Suporte para Formato Hexadecimal
Nossa ferramenta suporta entrada e saída em formato hexadecimal, útil para desenvolvedores que trabalham com dados binários no código do programa.
- Entrada: Aceita formato hexadecimal como 0x11,0x22,0x33 ou simplesmente 112233
- Saída: Converte Base64 decodificado de volta para formato hexadecimal para incorporação em código
Suporte para Conjuntos de Caracteres
Diferentes conjuntos de caracteres codificam texto em bytes de maneira diferente. Nossa ferramenta suporta vários conjuntos de caracteres para lidar com diversas codificações de texto:
- UTF-8: Codificação universal com suporte para todos os caracteres Unicode (padrão)
- ASCII: Codificação de 7 bits com suporte para caracteres básicos em inglês (0-127)
- Latin-1 (ISO-8859-1): Codificação de 8 bits com suporte para caracteres da Europa Ocidental (ISO-8859-1)
- UTF-16: Codificação de 16 bits comumente usada por Windows e Java (Little Endian)
Notas Importantes:
- Os dados codificados em Base64 são normalmente cerca de 33% maiores que os dados originais (porque 3 bytes se tornam 4 caracteres)
- Base64 não é um algoritmo de criptografia, apenas um método de codificação, e não fornece segurança
- A codificação Base64 de arquivos grandes pode consumir memória e tempo de processamento significativos
- Variantes Base64 seguras para URL usam conjuntos de caracteres diferentes para evitar problemas de codificação de URL
- O Base64 padrão pode incluir quebras de linha para limitar o comprimento da linha, o que requer tratamento adicional em algumas aplicações
Comparação do Base64 com Outras Codificações:
| Tipo de Codificação | Características | Usos Principais |
|---|---|---|
| Base64 | Usa 64 caracteres ASCII para representar dados binários | Anexos de e-mail, transmissão de dados binários em texto |
| Codificação de URL | Converte caracteres especiais para o formato %XX | Passagem de parâmetros de URL, envio de formulários |
| Codificação Hexadecimal | Cada byte é representado como dois caracteres hexadecimais | Representação de valores hash, visualização de dados binários |
Para mais informações oficiais sobre Base64, consulte os seguintes recursos: RFC 4648 (Padrão Base64) | Wikipédia: Base64 | RFC 2045 (Especificação MIME)
Ferramentas Relacionadas
Codificador/Decodificador URL
Codifique e decodifique URLs para garantir conformidade e usabilidade
Conversor de Imagem para Base64
Converta imagens para codificação Base64, suportando formatos PNG, JPG, GIF, SVG, WebP, gere Data URI e fundos CSS
Codificador/Decodificador HTML
Converta caracteres especiais em entidades HTML com formatos nomeados, decimais e hexadecimais para prevenir ataques XSS