Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
February 23, 2022 06:47 pm GMT

Como funciona a codificao em base64?

Quando falamos de texto - ou, mais precisamente, as letras que compem o alfabeto - estamos falando de caracteres individuais que so representados da mesma forma que nmeros, quando lidos pelo computador. Isto , tanto letras e nmeros so convertidos para valores binrios.

Veja a tabela abaixo:
tabela ascii

Cada letra possui um ndice na chamada tabela ASCII. Isso significa que podemos representar letras atravs de nmeros.
Logo, a palavra "Man" seria representada pelos valores 77, 97 e 110.
Esses valores, por sua vez, convertidos para base binria, correspondem a 01001101 01100001 01101110.
At aqui, nenhuma informao muito nova.

Contudo, o que acontece se quisermos codificar dados binrios e transmiti-los atravs de locais que so designados para lidar com dados em texto (caracteres alfanumricos)?
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 pgina web. Temos ento um tpico caso no qual a converso para base64 til: pginas HTML so otimizadas para texto, e portanto converter as informaes binrias para texto se torna interessante.

Como funciona a codificao?

Para simplificar, vamos utilizar o exemplo anterior.
A palavra "Man" representada por 3 bytes, 01001101 01100001 01101110.
Cada byte possui 8 bits, porm para iniciar a codificao para base64, precisamos que cada caractere corresponda a 6 bits. (Detalhe: 2^6 igual a 64, o nmero total de valores possveis em base64, portanto o nome da codificao)
Isso feito juntando os 3 nmeros, obtendo uma string de 24 bits: 010011010110000101101110.
Dividindo a string de 24 bits em 4 dgitos de 6 bits cada, temos agora:
010011 010110 000101 101110, que correspondem, em decimal, a 19,22,5 e 46.

O prximo passo encontrar a correspondncia de cada dgito na tabela base64:
tabela base64

Finalmente, isso nos d TWFu como resultado. A codificao est feita.

A diviso em 24 bits e padding

Sabendo que a converso para base64 se d em grupos de 24 bits, ou de 4 dgitos com 6 bits, chegamos a uma questo importante: o que ocorre caso no tenhamos os 4 dgitos completos?
Vamos supor que em vez de "Man", tenhamos "Ma". Isso resultaria em dois bytes, ou 16 bits no total.
O prximo mltiplo de 6 18, logo, para que possamos ter 3 dgitos 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 ento dividir essa string em 3 dgitos de 6 bits.
Esses bits, na hora da converso para ASCII, sero representados por =. Ento 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 obrigatrio, j que possvel saber se h bits que faltam pelo tamanho da string codificada - j que esse nmero deve ser sempre mltiplo de 4.


Original Link: https://dev.to/wrongbyte/como-funciona-a-codificacao-em-base64-2njd

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To