EfficTools Logo
EfficTools
Back to Blog
Base64

Guia completo de codificação Base64: Princípios, aplicações e prática

E
EfficTools Team
December 5, 202415 min read

Guia completo de codificação Base64: Princípios, aplicações e prática

O que é codificação Base64?

Base64 é um método de codificação que converte dados binários em strings ASCII. Ele usa 64 caracteres imprimíveis (A-Z, a-z, 0-9, +, /) para representar dados binários arbitrários.

Por que precisamos de Base64?

Em redes de computadores, muitos protocolos suportam apenas transmissão de dados de texto. Quando precisamos transmitir dados binários (como imagens, arquivos, etc.) através desses protocolos, precisamos converter dados binários em formato de texto. Base64 foi criado para esse propósito.

Casos de uso comuns

  • Anexos de e-mail: O protocolo MIME usa codificação Base64 para transmitir anexos binários
  • Data URLs: Incorporar pequenas imagens em HTML/CSS
  • Tokens JWT: JSON Web Tokens usam codificação Base64URL
  • Transmissão de API: Transmitir dados binários em JSON
  • Princípios de codificação Base64

    O princípio básico da codificação Base64 é dividir 3 bytes (24 bits) de dados binários em 4 grupos de 6 bits cada, depois mapear cada grupo de 6 bits para o caractere correspondente na tabela de caracteres Base64.

    Etapas de codificação

  • Converter dados de entrada para binário
  • Agrupar cada 3 bytes juntos
  • Dividir cada grupo de 24 bits em 4 grupos de 6 bits
  • Mapear cada grupo de 6 bits para um caractere Base64
  • Se o último grupo tiver menos de 3 bytes, preencher com =
  • Usando Base64 em JavaScript

    ``javascript

    // Codificação

    const encoded = btoa('Hello, World!');

    console.log(encoded); // SGVsbG8sIFdvcmxkIQ==

    // Decodificação

    const decoded = atob('SGVsbG8sIFdvcmxkIQ==');

    console.log(decoded); // Hello, World!

    `

    Lidando com caracteres Unicode

    Como btoa só pode lidar com caracteres Latin1, lidar com Unicode requer codificação UTF-8 primeiro:

    `javascript

    // Codificar Unicode

    const encodeUnicode = (str) => {

    return btoa(encodeURIComponent(str).replace(

    /%([0-9A-F]{2})/g,

    (_, p1) => String.fromCharCode(parseInt(p1, 16))

    ));

    };

    // Decodificar Unicode

    const decodeUnicode = (str) => {

    return decodeURIComponent(

    atob(str).split('').map(

    c => '%' + c.charCodeAt(0).toString(16).padStart(2, '0')

    ).join('')

    );

    };

    ``

    Usando EfficTools para codificação/decodificação Base64

    Se você não quiser escrever código, pode usar diretamente nossa ferramenta de codificação/decodificação Base64, que suporta:

    • Codificação de texto para Base64
    • Decodificação de Base64 para texto
    • Suporte perfeito para caracteres Unicode
    • Codificação Base64 de arquivos

    Resumo

    Base64 é um método de codificação importante com amplas aplicações no desenvolvimento web. Entender seus princípios e métodos de uso é muito útil para lidar com vários cenários de transmissão de dados.

    Base64CodificaçãoTutorialJavaScript
    Share this article