O Que É a Codificação Base64? Explicado
Base64 é uma codificação que representa dados binários arbitrários usando um conjunto de 64 caracteres de texto ASCII puro, para que o binário possa viajar por canais somente de texto.
Base64 resolve um problema de transporte: muitos sistemas só lidam com texto de forma segura, mas você frequentemente precisa mover dados binários - uma imagem, um arquivo de chave, um certificado - por eles. Base64 reescreve bytes binários como ASCII puro para que sobrevivam a pipes somente de texto. Ela está em todo lugar no CI, especialmente para colocar secrets binários dentro e fora de pipelines.
O que a codificação base64 é
Base64 pega dados binários três bytes de cada vez e os reescreve como quatro caracteres retirados de um alfabeto de 64 símbolos de letras, dígitos, mais e barra, preenchidos com sinais de igual. O resultado é cerca de um terço maior que o original mas contém apenas ASCII seguro e imprimível.
Codificação não é criptografia
Este é o ponto mais importante: base64 é reversível por qualquer um sem chave. Ela não esconde nada. Uma string base64 não é um secret só porque parece embaralhada - decodificá-la é trivial. Trate credenciais codificadas em base64 como totalmente expostas se a própria string vazar.
Por que canais de texto precisam dela
Variáveis de ambiente, campos JSON, valores YAML e email todos esperam texto. Enfiar binário bruto neles pode corromper os bytes ou quebrar o formato. Base64 envolve o binário para que ele passe inalterado, então o receptor o decodifica de volta aos bytes originais.
Base64 em secrets de CI
Secrets de CI armazenam texto, então credenciais binárias - um JSON de service account, um keystore, um arquivo PEM - são comumente codificadas em base64, armazenadas como um secret, depois decodificadas de volta para um arquivo no job. O secret permanece mascarado nos logs; base64 apenas torna o binário seguro para armazenar e transportar.
# Decode a base64 secret back to a file in CI
steps:
- run: echo "${{ secrets.KEYSTORE_B64 }}" | base64 -d > release.keystoreNota da Latchkey
O mascaramento de secret se aplica nos runners da Latchkey exatamente como nos GitHub-hosted, então um secret codificado em base64 permanece redigido nos logs - mas lembre-se de que a codificação em si não adiciona proteção, apenas transporte seguro.
Principais conclusões
- Base64 reescreve binário como ASCII imprimível para que possa passar por canais somente de texto.
- É codificação, não criptografia - qualquer um pode decodificá-la, então não fornece nenhum sigilo.
- CI comumente codifica credenciais binárias em base64 para armazená-las como secrets de texto, depois as decodifica para arquivos em um job.