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

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

Некоторые из вариантов использования кодирования:

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

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

В этой статье мы объясним, как использовать команду base64 для кодирования и декодирования данных в строке или файле.

Мы выполнили команды в системе Ubuntu 20.04 Focal Fossa. Однако вы также можете запускать те же команды в других дистрибутивах Linux. Для выполнения команд мы использовали приложение командной строки Terminal, к которому можно получить доступ с помощью сочетания клавиш Ctrl + Alt + T.

Синтаксис Base64

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

base64 [ОПЦИЯ] [ФАЙЛ]

Параметры

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

-d или —decode

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

— help

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

-i, —ignore-garbage

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

— версия

Используйте этот параметр для отображения информации о версии

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

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

$ echo «Добро пожаловать в Linux» | base64

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

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

$ echo «Добро пожаловать в Linux» | base64> encodedfile.txt

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

$ cat encodedfile.txt

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

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

$ echo «V2VsY29tZSB0byBMaW51eAo =» | base64 —decode

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

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

$ echo «V2VsY29tZSB0byBMaW51eAo =» | base64 –decode> decodedfile.txt

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

Команду base64 также можно использовать для кодирования текстового файла. Например, для кодирования текстового файла с именем «testfile.txt» команда будет выглядеть так:

$ base64 testfile.txt

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

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

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

$ cat encodedfile.txt

Текстовый файл декодирования

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

$ base64 -d encodedfile.txt

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

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

$ base64 -d encodedfile.txt> decodedfile.txt

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

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

Создать сценарий «test». sh »со следующим кодом:

#!/bin/bash
# Распечатать сообщение с запросом ввода
echo» Предоставить некоторые данные для encode «
# Сохранение ввода в переменную с именем» data «
чтение данных
# Кодирование с использованием кодировки base64 и сохранение вывода в переменную» encod_data «
encod_data = `echo -n $ data | base64`
# Печать закодированного вывода
echo «Закодированный текст: $ encod_data»

Запустите сценарий следующим образом:

$ ./test.sh

div>

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

Проверка ключа пользователя

Теперь давайте посмотрим на пример декодирования base64. Мы будем использовать декодирование base64 для проверки валидности пользователя. Для этого мы создадим скрипт, который будет запрашивать у пользователя ключ. Затем он сопоставит ключ ввода с предопределенным ключом, который сначала будет декодирован посредством декодирования base64. Если ключ, введенный пользователем, совпадает с предопределенным ключом, он напечатает сообщение «Вы ввели действительный ключ», в противном случае вы увидите «Введенный вами ключ недействителен», напечатанный на экране.

Создайте сценарий «test1.sh» со следующим кодом:

#!/bin/bash
# Распечатать сообщение для запроса ввода
echo «Введите свой ключ»
# Сохраните ключ, предоставленный пользователем, в переменную с именем «key»
ключ чтения
# Расшифруйте закодированный ключ (QWJjMTIzCg ) и сохраните вывод в переменной с именем «orig_key»
orig_key = `echo ‘QWJjMTIzCg ==’ | base64 —decode`
# Сравните ключ, введенный пользователем, с декодированным ключом
if [$ key == $ orig_key]; then
# если ключ совпадает, напечатайте это:
echo «Вы ввели действительный ключ»
else
# если ключ не совпадает, напечатайте это:
echo «Введенный вами ключ недействителен»
fi

Запустите сценарий следующим образом:

$ ./test1.sh

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

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

Оцените статью
nanomode.ru
Добавить комментарий