Manipulação de Dados Base64 no Node.js com o Objeto Nativo Buffer
A conversão de strings para Base64 é essencial no desenvolvimento web para a transmissão segura de credenciais, manipulação de dados binários e formatação de tokens. O objeto nativo Buffer do Node.js permite codificar e decodificar textos rapidamente sem a necessidade de instalar bibliotecas externas.
JavaScript
/**
* Codifica uma string para o formato Base64.
* @param {string} texto - Texto em formato utf-8.
* @returns {string} String codificada em Base64.
*/
function codificarBase64(texto) {
// Cria um buffer a partir da string utf-8 e exporta em base64
return Buffer.from(texto, 'utf-8').toString('base64');
}
/**
* Decodifica uma string em formato Base64 de volta para texto original.
* @param {string} base64Texto - String codificada em Base64.
* @returns {string} Texto decodificado em formato utf-8.
*/
function decodificarBase64(base64Texto) {
// Lê a string codificada como base64 e converte de volta para utf-8
return Buffer.from(base64Texto, 'base64').toString('utf-8');
}
// --- Exemplo Prático de Uso ---
const credenciais = 'usuario_admin:senha_super_segura_123';
// 1. Codificação
const credenciaisCodificadas = codificarBase64(credenciais);
console.log('Codificado (Base64):', credenciaisCodificadas);
// Saída: dXN1YXJpb19hZG1pbjpzZW5oYV9zdXBlcl9zZWd1cmFfMTIz
// 2. Decodificação
const credenciaisDecodificadas = decodificarBase64(credenciaisCodificadas);
console.log('Decodificado (UTF-8):', credenciaisDecodificadas);
// Saída: usuario_admin:senha_super_segura_123
Pontos-chave
- Módulo Nativo e Performance: O objeto
Bufferfaz parte do core global do Node.js, dispensando o uso derequire()e garantindo alta performance por lidar diretamente com a alocação de memória binária. - Codificação de Caracteres (
encoding): Especifique explicitamente'utf-8'para evitar corrupção de dados ao manipular caracteres especiais, acentos e emojis durante a conversão. - Aplicações Comuns: Perfeito para a construção manual de cabeçalhos de autenticação HTTP (
Authorization: Basic <base64>), criação de data URIs e transporte leve de dados. - Alternativa para Navegadores: No ambiente frontend (browser), a manipulação de Base64 é feita através das funções nativas globais
btoa()eatob().
