Skip to content

Como funciona a codificação Base64

6 de abril de 2021

Neste artigo

A codificação Base64 é um processo de conversão de dados binários em um formato de string ASCII, convertendo esses dados binários em uma representação de caracteres de 6 bits. O método Base64 de codificação é usado quando dados binários, como imagens ou vídeo, são transmitidos por sistemas projetados para transmitir dados em formato de texto simples (ASCII).

Por que a codificação Base64 é usada?

A necessidade de codificação Base64 vem dos problemas que ocorrem quando a mídia é transmitida em formato binário bruto para sistemas baseados em texto. Como os sistemas baseados em texto (como e-mail) interpretam os dados binários como uma ampla gama de caracteres, incluindo caracteres de comando especiais, muitos dos dados binários que são transmitidos para a mídia de transferência são mal interpretados por esses sistemas e perdidos ou corrompidos no processo de transmissão.

Wutthichai Luemuang / EyeEm / Getty Images
Um método de codificação desse tipo de dados binários de uma forma que evita tais problemas de transmissão é enviá-los como texto ASCII simples no formato codificado em Base64. Esta é uma das técnicas empregadas pelo padrão MIME para enviar dados diferentes de texto simples. Muitas linguagens de programação, como PHP e Javascript, incluem funções de codificação e decodificação Base64 para interpretar os dados transmitidos usando a codificação Base64.

Lógica de codificação Base64

A codificação Base64 divide os dados binários em segmentos de 6 bits de 3 bytes completos e os representa como caracteres imprimíveis no padrão ASCII. Ele faz isso essencialmente em duas etapas. O primeiro passo é quebrar a string binária em blocos de 6 bits. Base64 usa apenas 6 bits (correspondendo a 2 ^ 6 = 64 caracteres) para garantir que os dados codificados sejam impressos e legíveis por humanos. Nenhum dos caracteres especiais disponíveis em ASCII é usado. Os 64 caracteres (daí o nome Base64) são 10 dígitos, 26 caracteres minúsculos, 26 caracteres maiúsculos, bem como o sinal de mais (+) e a barra (/). Há também um 65º personagem conhecido como um almofada, que é o sinal de igual (=). Este caractere é usado quando o último segmento de dados binários não contém 6 bits completos.

Exemplo de codificação Base64

Por exemplo, pegue três números ASCII 155, 162 e 233. Esses três números constituem um fluxo binário de 100110111010001011101001. Um arquivo binário, como uma imagem, contém um fluxo binário rodando por dezenas ou centenas de milhares de zeros e uns. Um codificador Base64 começa dividindo o fluxo binário em agrupamentos de seis caracteres: 100110 111010 001011 101001. Cada um desses agrupamentos se traduz nos números 38, 58, 11 e 41. Um fluxo binário de seis caracteres converte entre binários (ou base- 2) para caracteres decimais (base 10), elevando ao quadrado cada valor representado por 1 na seqüência binária com seu quadrado posicional. Começando da direita e indo para a esquerda e começando com zero, os valores no fluxo binário representam 2 ^ 0, depois 2 ^ 1, 2 ^ 2, 2 ^ 3, 2 ^ 4 e 2 ^ 5. Aqui está outra maneira de ver isso. Começando da esquerda, cada posição vale 1, 2, 4, 8, 16 e 32. Se o número binário tiver 1 no slot, você adiciona esse valor; se tiver um 0 no slot, você não tem. A string binária 100110 é convertida no número decimal 38: 0 * 2 ^ 01 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 4 + 1 * 2 ^ 5 = 0 + 2 + 4 + 0 + 0 + 32. A codificação Base64 pega essa string binária e a divide nos valores de 6 bits 38, 58, 11 e 41. Finalmente, esses números são convertidos em caracteres ASCII usando a tabela de codificação Base64. Os valores de 6 bits deste exemplo traduzem para a sequência ASCII m6Lp. Usando a tabela de conversão Base64:

  • 38 é m
  • 58 é 6
  • 11 é L
  • 41 é p

Este processo de duas etapas é aplicado a toda a string binária que está codificada. Para garantir que os dados codificados possam ser impressos corretamente e não excedam o limite de comprimento de linha do servidor de e-mail, caracteres de nova linha são inseridos para manter o comprimento das linhas abaixo de 76 caracteres. Os caracteres de nova linha são codificados como todos os outros dados. Todo o propósito da codificação Base64, desde a adição de preenchimento para preservar segmentos binários de 3 bytes até a conversão de binários em texto usando a tabela Base64, é preservar a integridade das informações binárias transmitidas.

Tabela de codificação Base64

A tabela a seguir traduz todos os 64 caracteres usados ​​na codificação Base64.

Tabela de codificação Base64
Valor Caracteres Valor Caracteres Valor Caracteres Valor Caracteres
0 UMA 16 Q 32 g 48 C
1 B 17 R 33 h 49 x
2 C 18 S 34 eu 50 y
3 D 19 T 35 j 51 z
4 E 20 você 36 k 52 0
5 F 21 V 37 eu 53 1
6 G 22 C 38 m 54 2
7 H 23 X 39 n 55 3
8 eu 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 uma 42 q 58 6
11 eu 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 você 62 +
15 P 31 f 47 v 63 /

Resolvendo o Endgame

No final do processo de codificação, pode haver um problema. Se o tamanho dos dados originais em bytes for um múltiplo de três, tudo funcionará bem. Se não estiver, pode haver bytes vazios. Para uma codificação adequada, são necessários exatamente 3 bytes de dados binários. A solução é acrescentar bytes suficientes com um valor de 0 para criar um grupo de 3 bytes. Dois desses valores são acrescentados se os dados precisarem de um byte extra de dados, um é acrescentado para dois bytes extras. Obviamente, esses ‘0’s finais artificiais não podem ser codificados usando a tabela de codificação abaixo. Eles devem ser representados por um 65º personagem. O caractere de preenchimento Base64 é o sinal de igual (=) e é colocado no final dos dados codificados. Mais da Lifewire

  • Linhas de conexão, ilustração

    A definição de tipos de dados binários em um SQL Server

  • Código binário

    Como usar valores booleanos (valores lógicos) no Excel

  • Homem sentado em frente ao computador em um pequeno escritório

    Trabalho com números binários

  • Binário em uma tela

    Como mostrar os caracteres imprimíveis de um arquivo com o comando Strings

  • Imagem do código binário

    O que é binário e como funciona?

  • CBR vs VBR

    Codificação CBR vs VBR

  • Patrimônio líquido no balanço patrimonial

    Como subtrair em planilhas do Google

  • Captura de tela de vários arquivos PEM no Windows 10

    O que é um arquivo PEM?

  • Pessoa que usa GNU nano e um bash for loop

    Como escrever um BASH ‘para’ Loop

  • Um casal admira uma foto impressa.

    Como os bits são usados ​​na fotografia digital?

  • Cubículos de escritório vazios

    O Comando Linux – fdisk

  • Ilustração de uma tela de computador com "1010101" nela

    Como os bits, bytes, megabytes, megabits e gigabits diferem?

  • Ilustração de um cubo de 1 MB e seus cubos de 8 MB equivalentes

    O que é megabit (Mb)?

  • O que é um bit em redes de computadores?

  • Duas empresárias trabalhando em projeto no computador

    rpm – Comando Linux – Comando Unix

  • Disco rígido do computador

    Por que o armazenamento anunciado não corresponde à capacidade real de dados

Lifewire

Siga-nos

  • Facebook

  • Sobre nós
  • Anunciar
  • Política de Privacidade
  • Política de Cookies
  • Carreiras
  • Diretrizes editoriais
  • Contato
  • Termos de uso
  • Privacidade da UE
  • Aviso de privacidade da Califórnia



Seus direitos de privacidade

A Lifewire e nossos parceiros terceirizados usam cookies e processam dados pessoais como identificadores exclusivos com base em seu consentimento para armazenar e / ou acessar informações em um dispositivo, exibir anúncios personalizados e para medição de conteúdo, percepção do público e desenvolvimento de produtos. Para alterar ou retirar suas opções de consentimento para Lifewire.com, incluindo seu direito de contestar quando um interesse legítimo é usado, clique abaixo. A qualquer momento, você pode atualizar suas configurações por meio do link “Privacidade da UE” na parte inferior de qualquer página. Essas escolhas serão sinalizadas globalmente para nossos parceiros e não afetarão os dados de navegação. Lista de parceiros (fornecedores)

Nós e nossos parceiros processamos dados para:

Digitalize ativamente as características do dispositivo para identificação. Use dados precisos de geolocalização. Armazene e / ou acesse informações em um dispositivo. Selecione o conteúdo personalizado. Crie um perfil de conteúdo personalizado. Avalie o desempenho do anúncio. Selecione anúncios básicos. Crie um perfil de anúncios personalizados. Selecione anúncios personalizados. Aplique pesquisas de mercado para gerar insights do público. Avalie o desempenho do conteúdo. Desenvolva e aprimore produtos. Lista de parceiros (fornecedores)