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

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 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