Base64 - GregorioFornetti/CriPython GitHub Wiki

Vídeo tutorial

Caso goste de assistir vídeos tutorias, clique aqui para assistir um vídeo sobre a base64.

Janela da Base64

janela da base numérica

Na imagem acima, há algumas áreas demarcadas com retângulos vermelhos enumerados, que serão explicados logo abaixo:

1-Mensagem: Caso esteja no modo encriptação, digite uma mensagem qualquer nessa região para criar um código base64. Caso esteja no modo tradução, digite um código base64 nessa área para traduzir esse código para um texto comum.

2-Output: Ao clicar em "encriptar" ou "traduzir", a mensagem encriptada ou traduzida aparecerá nessa região.

Funcionamento

Codificação

Para codificar um texto em base64, primeiro, é preciso coletar os valores binários equivalente a cada caractere da mensagem(valor UNICODE transformado em binário). Depois disso, o código binário precisa passar pelo sistema de enconding UTF-8. Com o código UTF-8, ir convertendo cada bloco de 6 bits em um caractere da tabela da base 64.

Exemplo: Transformando o texto "abc" em código base64: Converter cada caractere para seus valores UNICODE em binário:

"a" = 97(decimal) -> 1100001

"b" = 98(decimal) -> 1100010

"c" = 99(decimal) -> 1100011.

Depois de realizar essas conversões, é necessário realizar o enconding UTF-8:

1100001 -> 01100001

1100010 -> 01100010

1100011 -> 01100011

Agora, é necessário juntar os códigos UTF-8 e separar em blocos de 6:

011000 | 010110 | 001001 | 100011

Convertendo cada bloco, utilizando a tabela base64, chegamos no resultado: "YWJj"

Tradução

Para traduzir, basta fazer o processo inverso: converter os caracteres base64 para valores UTF-8, converter o UTF-8 para binário e depois para caracteres (através do UNICODE).

Recomendações

O processo de encoding da base64 possui várias etapas que não foram muito bem explicadas nessa wiki. Caso você tenha interesse em aprender como funciona a base64, eu recomendo que assista alguns vídeos:

-Video rápido sobre base64

-Video sobre o UTF-8

-Video sobre base64 de forma mais detalhada

Além disso, caso queira ver como que o código da base64 foi implementado em Python, você pode verificar o arquivo de implementação aqui