Skip to content
Latchkey

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.

Restoring a binary secret from base64
# Decode a base64 secret back to a file in CI
steps:
  - run: echo "${{ secrets.KEYSTORE_B64 }}" | base64 -d > release.keystore

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

Guias relacionados