Como funciona a codificação em base64?

Quando falamos de texto – ou, mais precisamente, as letras que compõem o alfabeto – estamos falando de caracteres individuais que são representados da mesma forma que números, quando lidos pelo computador. Isto é, tanto letras e números são convertidos…


This content originally appeared on DEV Community and was authored by DEV Community

Quando falamos de texto - ou, mais precisamente, as letras que compõem o alfabeto - estamos falando de caracteres individuais que são representados da mesma forma que números, quando lidos pelo computador. Isto é, tanto letras e números são convertidos para valores binários.

Veja a tabela abaixo:
tabela ascii

Cada letra possui um índice na chamada tabela ASCII. Isso significa que podemos representar letras através de números.
Logo, a palavra "Man" seria representada pelos valores 77, 97 e 110.
Esses valores, por sua vez, convertidos para base binária, correspondem a 01001101 01100001 01101110.
Até aqui, nenhuma informação muito nova.

Contudo, o que acontece se quisermos codificar dados binários e transmiti-los através de locais que são designados para lidar com dados em texto (caracteres alfanuméricos)?
A forma escolhida para fazer isso de maneira otimizada é codificar os dados na base64.

O que é base64?

Imagine que você quer inserir uma imagem em uma página web. Temos então um típico caso no qual a conversão para base64 é útil: páginas HTML são otimizadas para texto, e portanto converter as informações binárias para texto se torna interessante.

Como funciona a codificação?

Para simplificar, vamos utilizar o exemplo anterior.
A palavra "Man" é representada por 3 bytes, 01001101 01100001 01101110.
Cada byte possui 8 bits, porém para iniciar a codificação para base64, precisamos que cada caractere corresponda a 6 bits. (Detalhe: 2^6 é igual a 64, o número total de valores possíveis em base64, portanto o nome da codificação)
Isso é feito juntando os 3 números, obtendo uma string de 24 bits: 010011010110000101101110.
Dividindo a string de 24 bits em 4 dígitos de 6 bits cada, temos agora:
010011 010110 000101 101110, que correspondem, em decimal, a 19,22,5 e 46.

O próximo passo é encontrar a correspondência de cada dígito na tabela base64:
tabela base64

Finalmente, isso nos dá TWFu como resultado. A codificação está feita. 🎉

A divisão em 24 bits e padding

Sabendo que a conversão para base64 se dá em grupos de 24 bits, ou de 4 dígitos com 6 bits, chegamos a uma questão importante: o que ocorre caso não tenhamos os 4 dígitos completos?
Vamos supor que em vez de "Man", tenhamos "Ma". Isso resultaria em dois bytes, ou 16 bits no total.
O próximo múltiplo de 6 é 18, logo, para que possamos ter 3 dígitos de 6 bits, precisamos adicionar 2 bits na string representada.
Isso significa que 0100110101100001 se torna 010011010110000100, porque adicionamos 2 bits - dois zeros - no final. Assim, podemos então dividir essa string em 3 dígitos de 6 bits.
Esses bits, na hora da conversão para ASCII, serão representados por =. Então Ma corresponde agora a TWE=.
Veja, no exemplo abaixo, alguns casos onde o padding é adicionado:
padding examples

É importante notar que nem sempre o padding vai ser obrigatório, já que é possível saber se há bits que faltam pelo tamanho da string codificada - já que esse número deve ser sempre múltiplo de 4.


This content originally appeared on DEV Community and was authored by DEV Community


Print Share Comment Cite Upload Translate Updates
APA

DEV Community | Sciencx (2022-02-23T18:47:14+00:00) Como funciona a codificação em base64?. Retrieved from https://www.scien.cx/2022/02/23/como-funciona-a-codificacao-em-base64/

MLA
" » Como funciona a codificação em base64?." DEV Community | Sciencx - Wednesday February 23, 2022, https://www.scien.cx/2022/02/23/como-funciona-a-codificacao-em-base64/
HARVARD
DEV Community | Sciencx Wednesday February 23, 2022 » Como funciona a codificação em base64?., viewed ,<https://www.scien.cx/2022/02/23/como-funciona-a-codificacao-em-base64/>
VANCOUVER
DEV Community | Sciencx - » Como funciona a codificação em base64?. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/02/23/como-funciona-a-codificacao-em-base64/
CHICAGO
" » Como funciona a codificação em base64?." DEV Community | Sciencx - Accessed . https://www.scien.cx/2022/02/23/como-funciona-a-codificacao-em-base64/
IEEE
" » Como funciona a codificação em base64?." DEV Community | Sciencx [Online]. Available: https://www.scien.cx/2022/02/23/como-funciona-a-codificacao-em-base64/. [Accessed: ]
rf:citation
» Como funciona a codificação em base64? | DEV Community | Sciencx | https://www.scien.cx/2022/02/23/como-funciona-a-codificacao-em-base64/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.