Base64 Codificação e Decodificação da Linha de Comando

Codificação é o processo usado para converter dados em um formato necessário para a transmissão ou armazenamento efetivo. Em contraste, a descodificação é oposta ao método de codificação que converte os dados codificados de volta ao seu formato original. Base64 é o processo de codificação onde os dados binários são convertidos em ASCII. A codificação Base64 é requerida principalmente para evitar os problemas de transmissão que ocorrem quando dados binários são transmitidos para sistemas baseados em texto que não conseguem lidar corretamente com os dados binários. Como resultado, a informação é perdida ou corrompida durante a transmissão.

Alguns dos usos da codificação são:

  • Compressão de dados
  • Ocultação de dados
  • Transmissão de dados em outro formato

Para a codificação de dados, a Base64 usa apenas alfabeto, número e = símbolo. Por exemplo, c2FtcGxlCg=== é um dado codificado válido enquanto b?HV3.Zh2J=== não é um dado codificado válido.

Neste artigo, vamos explicar como usar o comando base64 para codificar e decodificar os dados em uma string ou arquivo.

Realizamos os comandos no sistema Ubuntu 20.04 Focal Fossa. No entanto, você também pode executar os mesmos comandos em outras distribuições Linux. Para executar os comandos, usamos o aplicativo Terminal de linha de comando, que pode ser acessado usando o atalho de teclado Ctrl+Alt+T.

Base64 Sintaxe

Aqui está a sintaxe para codificação usando o comando Base64:

base64

Opções

Algumas das opções de linha de comando que podem ser usadas com o comando base64 são:

-d ou –decode

Utiliza esta opção para descodificar um ficheiro ou uma string.

–help

Utilize esta opção para mostrar ajuda em relação ao uso da base64.

-i, –ignore-garbage

Utilize esta opção enquanto decodifica para ignorar caracteres não alfabéticos

–versão

Utilize esta opção para exibir informações da versão

Codificar String

Você pode facilmente codificar uma string usando o comando base64. Por exemplo, para codificar um exemplo de texto “Welcome to Linux” para base64, o comando seria:

$ echo “Bem-vindo ao Linux” | base64

Este comando codificará o texto na string usando o comando base64 e imprimirá o texto codificado para a saída padrão como mostrado na seguinte captura de tela

Você também pode salvar a saída codificada em um arquivo ao invés de imprimir para a saída padrão usando o operador de redirecionamento (>). O seguinte comando irá codificar o texto e salvar a saída em um arquivo chamado “encodedfile.txt:

$ echo “Welcome to Linux” | base64 > encodedfile.txt

Para ver o ficheiro codificado, pode usar o comando cat:

$ cat encodedfile.txt

Decodificar String

Também pode descodificar o texto codificado na base64 usando a opção -decode ou -d. Por exemplo para descodificar o texto codificado na base64 “V2VY29tZSB0byBMaW51eAo=”, o comando seria:

$ echo “V2VY29tZSB0byBMaW51eAo=” | base64 –decode

Este comando descodificará o texto codificado na base64 e imprimirá o texto original na saída padrão como mostrado na captura de ecrã seguinte.

Você também pode salvar a saída decodificada em um arquivo ao invés de imprimir na saída padrão usando o operador de redirecionamento (>). O seguinte comando irá descodificar o texto codificado e guardar o texto original num ficheiro chamado “decodedfile.txt:

$ echo “V2VY29tZSB0byBMaW51eAo=” | base64 -decode > decodedfile.txt

Encoding Text File

O comando base64 também pode ser usado para codificar um ficheiro de texto. Por exemplo, para codificar um arquivo de texto chamado “testfile.txt”, o comando seria:

$ base64 testfile.txt

Este comando codificará o arquivo de texto especificado e imprimirá sua forma codificada na saída padrão como mostrado na captura de tela a seguir.

Você também pode salvar a saída codificada em um arquivo ao invés de imprimir na saída padrão usando o operador de redirecionamento (>). O seguinte comando irá converter o texto no arquivo usando base64 e salvar a saída em outro arquivo chamado “encodedfile.txt:

Para ver o arquivo codificado, você pode usar o comando cat:

$ cat encodedfile.txt

Decifrar ficheiro de texto

Para descodificar um ficheiro de texto codificado, use a opção -decode ou -d. Por exemplo, para descodificar o ficheiro de texto codificado base64 “encodedfile.txt”, o comando seria:

$ base64 -d encodedfile.txt

Este comando descodificará o ficheiro de texto codificado base64 e imprimirá o texto original na saída padrão como mostra a captura de ecrã seguinte.

Você também pode salvar a saída decodificada em um arquivo ao invés de imprimir na saída padrão usando o operador de redirecionamento (>). O seguinte comando irá decodificar o texto codificado e salvar o texto original em um arquivo chamado “decodedfile.txt” que pode ser visualizado posteriormente usando o comando cat.

$ base64 -d encodedfile.txt > decodedfile.txt

Encoding User Input

Usando a codificação base64, nós podemos codificar qualquer dado fornecido pelo usuário. Para este propósito, precisaremos criar um script que pegue a entrada do usuário, codifique-a usando a codificação base64 e imprima os dados codificados na saída padrão.

Criar um script “test.sh” com o seguinte código:

#!/bin/bash
# Imprimir mensagem para pedir entrada
echo “Provide Some data to encode”
# Salvar a entrada para uma variável chamada “data”
# Ler dados
# Codificar usando codificação base64 e salvar a saída para uma variável “encod_data”
encod_data=`echo -n $data | base64`
# Imprimir saída codificada
echo “Texto codificado é : $encod_data”

Executar o script da seguinte forma:

$ ./test.sh

Após executar o script, você será solicitado a inserir os dados que você deseja codificar. Digite alguns dados e pressione Enter, e você receberá a saída codificada na tela.

Validando a tecla User

Agora vamos ver um exemplo de decodificação base64. Vamos usar a decodificação da base64 para verificar a validade do usuário. Para isso, vamos criar um script que pedirá uma chave ao usuário. Em seguida, ele irá combinar a chave de entrada com a chave predefinida, que será primeiro decodificada pela decodificação da base64. Se a chave introduzida pelo utilizador corresponder à chave pré-definida, irá imprimir a mensagem “You have entered a valid key”, caso contrário, irá ver “The key you have entered is not valid “printed on the screen.

Create a script “test1.sh” with the following code:

#!/bin/bash
# Imprimir mensagem para pedir entrada
echo “Digite sua chave”
# Salve a chave fornecida pelo usuário em uma variável chamada “chave”
>leitura da chave
# Decodifique a chave codificada (QWJjMTIzCg) e salve a saída para uma variável chamada “orig_key”
orig_key=`echo ‘QWJjMTIzCg==’ | base64 –decode`
# Compare a chave introduzida pelo utilizador com a chave descodificada
se ; então
# se a chave corresponder, imprima-a:
echo “You have entered a valid key”
else
#if key does not match, print this:
echo “The key you have entered is not valid”
fi

Executar o script da seguinte forma:

$ ./test1.sh

Após executar o script, será solicitada a chave. Digite a tecla e pressione Enter. Se a tecla introduzida corresponder à tecla descodificada predefinida, receberá a mensagem ” You have entered a valid key”, caso contrário a mensagem ” The key you have entered is not valid ” será impressa no ecrã.

É assim que pode utilizar a base64 para codificar e descodificar uma string ou um ficheiro a partir da linha de comandos. Os resultados podem ser impressos na saída padrão ou salvos em um arquivo. Entretanto, lembre-se que a codificação não é similar à criptografia, e pode-se facilmente revelar os dados codificados, portanto não é recomendado usar a codificação para a transmissão de dados sensíveis.

Deixe uma resposta

O seu endereço de email não será publicado.