Поиск по сайту:
Пока талант пробьётся, бездарность уже успеет выслужиться (В. Жемчужников).

Кодирование и декодирование Base64 из командной строки

09.12.2022
Кодирование и декодирование Base64 из командной строки

Кодирование — это процесс, используемый для преобразования данных в формат, необходимый для эффективной передачи или хранения. Напротив, декодирование противоположно методу кодирования, который преобразует закодированные данные обратно в исходный формат. Base64 — это процесс кодирования, при котором двоичные данные преобразуются в ASCII. Кодирование Base64 в основном требуется, чтобы избежать проблем с передачей, возникающих при передаче двоичных данных в текстовые системы, которые не могут правильно обрабатывать двоичные данные. В результате информация теряется или искажается при передаче.

Некоторые из применений кодирования:

  • Сжатие данных
  • Скрытие данных
  • Передача данных в другом формате

 

Для кодирования данных Base64 использует только алфавит, число и символ =. Например, c2FtcGxlCg== является допустимыми закодированными данными, а b?HV3.Zh2J== не является допустимыми закодированными данными.

В этой статье мы объясним, как использовать команду base64 для кодирования и декодирования данных в строке или файле. Мы выполнили команды в системе Ubuntu 20.04 Focal Fossa. Однако вы также можете запускать те же команды в других дистрибутивах Linux.

 

Синтаксис Base64

Вот синтаксис кодирования с использованием Base64:

base64 [OPTION] [FILE]

Опции

Вот некоторые из параметров командной строки, которые можно использовать с командой base64:

-d or --decode

 

Используйте эту опцию для декодирования файла или строки.

--help

 

Используйте эту опцию для отображения справки по использованию base64.

-i, --ignore-garbage

 

Используйте этот параметр при декодировании, чтобы игнорировать неалфавитные символы.

Используйте эту опцию, чтобы отобразить информацию о версии

Читать  10 лучших бесплатных игр для Linux

 

Строка кодирования

Вы можете легко закодировать строку с помощью команды base64. Например, чтобы закодировать образец текста «Добро пожаловать в Linux» в base64, команда будет выглядеть так:

echo “Добро пожаловать в Linux” | base64
Terminal Output:
andreyex@hp34:~$ echo "Добро пожаловать в Linux" | base64
V2VsY29tZSB0byBMaW51eAo=

 

Эта команда закодирует текст в строке с использованием base64 и напечатает закодированный текст в стандартный вывод, как показано выше в выводе терминала.

Вы также можете сохранить закодированный вывод в файл, а не печатать в стандартный вывод, используя оператор перенаправления (>). Следующая команда закодирует текст и сохранит вывод в файл с именем «encodedfile.txt:

echo “Добро пожаловать в Linux” | base64 > encodedfile.txt

 

Чтобы просмотреть закодированный файл, вы можете использовать команду cat:

cat encodedfile.txt
Terminal Output:
andreyex@hp34:~$ cat encodedfile.txt
4oCcV2VsY29tZSB0byBMaW51eOKAnQo=

Строка декодирования

Вы также можете декодировать текст в кодировке base64, используя параметр –decode или -d. Например, для декодирования закодированного в base64 текста «V2VsY29tZSB0byBMaW51eAo=» команда будет выглядеть так:

echo  4oCcV2VsY29tZSB0byBMaW51eOKAnQo| base64 --decode

 

Эта команда декодирует текст в кодировке base64 и печатает исходный текст на стандартном выводе, как показано в следующем выводе терминала.

Terminal Output:
andreyex@hp34:~$ echo  4oCcV2VsY29tZSB0byBMaW51eOKAnQo= | base64 --decode
“Welcome to Linux”

Кодирование текстового файла

Команду base64 также можно использовать для кодирования текстового файла. Для этого примера давайте сначала создадим текстовый файл с некоторым содержимым, используя эту команду на терминале, или используем любой текстовый файл.

echo """Я люблю Linux
Я люблю Linux
Я люблю Linux
andreyex - это моя домашняя страница""" > testfile.txt

 

Читать  Как удалить Snap-пакет в Ubuntu

Чтобы закодировать этот или любой текстовый файл с именем «testfile.txt», команда будет выглядеть так:

base64 testfile.txt

 

Эта команда закодирует указанный текстовый файл и напечатает его закодированную форму на стандартном выходе, как показано в следующем выводе терминала:

andreyex@hp34:~$ base64 testfile.txt
SSBMb3ZlIExpbnV4CkkgTG92ZSBMaW51eApJIExvdmUgTGludXgKTGludXhIaW50IGlzIG15IGhv
bWVwYWdlCg==

 

Вы также можете сохранить закодированный вывод в файл, а не печатать в стандартный вывод, используя оператор перенаправления (>). Следующая команда преобразует текст в файл с использованием base64 и сохраняет вывод в другой файл с именем «encodedfile.txt». Команда ничего не выводит на экран.

base64 testfile.txt > encodedfile.txt

 

Чтобы просмотреть закодированный файл, вы можете использовать команду cat:

cat encodedfile.txt
Terminal Output:
andreyex@hp34:~$ base64 testfile.txt > encodedfile.txt
andreyex@hp34:~$ cat encodedfile.txt
SSBMb3ZlIExpbnV4CkkgTG92ZSBMaW51eApJIExvdmUgTGludXgKTGludXhIaW50IGlzIG15IGhv
bWVwYWdlCg==

Декодирование текстового файла

Чтобы декодировать закодированный текстовый файл, используйте параметр –decode или -d. Например, для декодирования закодированного в base64 текстового файла «encodedfile.txt» команда будет выглядеть так:

base64 -d encodedfile.txt

 

Эта команда декодирует текстовый файл в кодировке base64 и печатает исходный текст на стандартном выходе, как показано в следующем выводе терминала:

Terminal Output:
andreyex@hp34:~$ base64 -d encodedfile.txt
Я люблю Linux
Я люблю Linux
Я люблю Linux
andreyex - это моя домашняя страница
andreyex@hp34:~$

Кодирование пользовательского ввода

Используя кодировку base64, мы можем кодировать любые предоставленные пользователем данные. Для этой цели нам потребуется создать сценарий, который будет принимать пользовательский ввод, кодировать его с использованием кодировки base64 и выводить закодированные данные на стандартный вывод. Создайте скрипт «test.sh» со следующим кодом:

#!/bin/bash
# Печатать сообщение с запросом ввода
echo "Предоставить некоторые данные для кодирования"
# Сохранение ввода в переменную с именем "data"
read data
# Кодирование с использованием кодировки base64 и сохранение вывода в переменной "encod_data"
encod_data=`echo -n $data | base64`
# Напечатать закодированный вывод
echo "Encoded text is : $encod_data"
Запустите скрипт следующим образом:
chmod 755 test.sh; ./test.sh

 

Читать  5 причин, по которым вашей сети нужен продвинутый IP-сканер

После запуска скрипта вам будет предложено ввести данные, которые вы хотите закодировать. Введите некоторые данные и нажмите Enter, и вы получите закодированный вывод на экране, как показано ниже:

Terminal Output:
andreyex@hp34:~$ chmod 755 test.sh; ./test.sh
Provide Some data to encode
Я люблю Linux
Encoded text is : SSBsb3ZlIGxpbnV4

 

Этот закодированный текст можно отправить через Интернет или в другую программу, а затем расшифровать позже с помощью простой команды. Для этой команды мы предполагаем, что принимающая программа decode.sh поместила закодированные данные в переменную BASH с именем RECEIVED_ENCODING .

#!/bin/bash
RECEIVED_ENCODING=SSBsb3ZlIGxpbnV4
RECEIVED_STRING=`echo  $RECEIVED_ENCODING | base64 --decode`
echo $RECEIVED_STRING

 

Здесь вы можете увидеть результаты работы принимающей программы в выводе терминала:

andreyex@hp34:~$ chmod 755 decode.sh ; ./decode.sh
Я люблю Linux

Вывод

Вот как вы можете использовать base64 для кодирования и декодирования строки или файла из командной строки. Результаты можно вывести на стандартный вывод, сохранить в переменной или файле или передать по сети в другую программу. Однако помните, что кодирование не похоже на шифрование, и можно легко раскрыть закодированные данные, поэтому не рекомендуется использовать кодирование для передачи конфиденциальных данных, если они также не зашифрованы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Micron выпустила первый клиентский твердотельный накопитель с 232-слойной памятью TLC…

Спасибо!

Теперь редакторы в курсе.