Overso
Neste tutorial, você aprenderá como base64 codificar e decodificar a partir da linha de comando no Linux. Você também aprenderá o que é codificação base64 e porque ela nunca deve ser usada para proteger dados contra acesso não autorizado.
Base64 codificação e decodificação de dados tem muitos casos de uso. Um é assegurar a integridade dos dados ao transferir dados através da rede, enquanto outro é armazenar segredos em Kubernetes.
Depois de ler este tutorial você irá compreender como codificar facilmente ficheiros ou strings, e depois descodificá-los de volta.
Como codificar base64 no Ubuntu, Debian, OSX, e Red Hat
Se estiver a correr distribuições linux populares, tais como Ubuntu, Debian, CentOS, ou Red Hat, a ferramenta de linha de comandos base64 é tipicamente pré-instalada. Você não deve executar nenhum passo adicional.
OSX também vem empacotada com sua própria versão da base64.
Por que a Base64 codifica dados
Transferir um arquivo ASCII pela rede pode causar corrupção se não for decodificada corretamente. A razão é que arquivos ASCII são convertidos em bytes, e quando esses bytes são incorretamente decodificados de volta para ASCII seus dados se tornam corrompidos.
Base64 foi introduzida como uma forma de converter seus dados ASCII em bytes arbitrários, onde eles poderiam então ser transferidos como bytes, e decodificados corretamente de volta para ASCII.
Em suma, a codificação base64 assegura a integridade dos nossos dados quando transferidos através da rede.
Base64 não é Encriptação
A codificação de ficheiros não é encriptada e nunca deve ser usada para proteger dados sensíveis em disco. Ao contrário, é uma forma útil de transferir ou armazenar grandes dados na forma de uma string.
Embora possa ofuscar que dados reais de surfistas deveriam, qualquer um que tenha acesso aos dados codificados da base64 pode facilmente decodificá-los.
Base64 Encoding a String
Para codificar a string do codificador base64 você pode pipear um comando echo para a ferramenta de linha de comando base64. Para garantir que não são adicionados caracteres extras, use o flag. -n
Sem o flag -n
você pode capturar caracteres escondidos, como retornos de linha ou espaços, que irão corromper sua codificação base64.
echo -n 'my-string' | base64
Que irá sair o seguinte
bXktc3RyaW5n
Base64 Codificando um arquivo
Para base64 codifique um arquivo
Esta irá sair uma string muito longa, codificada com base64. Você pode querer escrever a stdout no arquivo ao invés.
bas64 /path/to/file > output.txt
Decifrar Strings
Para decodificar com base64 você precisa usar a bandeira --decode
. Com encoded string, você pode pipear um comando echo para a base64 como você fez para codificá-lo.
Usando a codificação de exemplo mostrada acima, vamos descodificá-la de volta à sua forma original.
echo -n 'bXktc3RyaW5n' | base64 --decode
Desde que a sua codificação não tenha sido corrompida a saída deverá ser a sua string original.
Descodificar ficheiros
Para descodificar um ficheiro com conteúdos que são codificados com base64, basta fornecer o caminho do ficheiro com o sinalizador --decode
.
base64 --decode /path/to/file
Como com os ficheiros codificados, a saída será uma cadeia muito longa do ficheiro original. Você pode querer sair stdout directamente para um ficheiro.
base64 --decode /path/to/file > output.txt
Conclusion
Neste tutorial, você aprendeu como base64 codificar ficheiros e strings. Isto é algo comumente feito para transferir arquivos de tal forma que permanece