Основы командной строки Linux: Кодирование и декодирование строк в формате Base64

Основы командной строки Linux: Кодирование и декодирование строк в формате Base64

29.04.2024
Автор: HostZealot Team
2 мин.
56

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

Среди множества методов представления двоичных данных в формате строк ASCII, Base64 является одним из самых распространенных, используемых, в частности, для кодирования изображений и других документов во вложениях электронной почты, в URL, а также в других случаях, когда необходимо преобразовать что-то в чистый текст. Ниже мы покажем вам, как использовать инструменты командного терминала в Linux для кодирования и декодирования строк Base64.

1. Использование Base64

Base64 - это базовая команда для base64, которая может использоваться как для кодирования, так и для декодирования.

1.1. Кодирование с помощью Base64

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

base64 filename > outputfile

Вместо "Filename" следует указать имя файла, который вы хотите закодировать, а вместо "outputfile" - желаемое имя закодированного файла.

Чтобы закодировать фрагмент текста:

echo -n "yourtext" | base64

Замените"yourtext"  на текст, который вы хотите закодировать.

1.2. Декодирование Base64

Декодирование в Base64 выполняется с помощью той же команды base 64 с добавлением опции -d.

Чтобы декодировать файл, введите:

base64 -d encodedfile > outputfile

Endodedfile следует заменить на имя вашего файла, а outputfile - на желаемое имя выходного файла.

Чтобы декодировать текст, введите:

echo -n "encodedtext" | base64 -d

Замените "encodedtext" на текст, который нужно закодировать.

Например:

Кодирование:

echo -n "Hello, Base64!" | base64
Output: SGVsbG8sIEJhc2U2NCE=
base64 mydocument.txt > encoded_document.txt

Декодирование:

echo -n "SGVsbG8sIEJhc2U2NCE=" | base64 -d
Output: Hello, Base64!
base64 -d encoded_document.txt > decoded_document.txt

2. OpenSSL для операций Base64

Еще одна возможность, доступная при использовании OpenSSL, заключается в том, что, помимо всего прочего, он предлагает Base64 для кодирования и декодирования. Давайте посмотрим.

Кодирование Base64 с помощью OpenSSL

Вы можете закодировать файл или текст с помощью OpenSLL, используя команду openssl enc с параметром base64.

Кодирование файла:

openssl enc -base64 -in filename -out outputfile

Замените filename на имя файла, который вы собираетесь кодировать, а outputfile - на имя, которое вы хотите дать закодированному файлу.

Чтобы закодировать текст:

echo -n "yourtext" | openssl enc -base64

Замените yourtext на текст, который вы хотите закодировать.

Декодирование Base64 с помощью OpenSSL

Декодирование Base64-кодированного файла или строки выполняется с помощью той же команды openssl enc, а также опций -d и -base64.

Чтобы декодировать файл:

openssl enc -base64 -d -in encodedfile -out outputfile

encodedfile следует заменить на имя Base64-кодированного файла, а outputfile - на имя, которое вы хотите получить для декодированного файла.

Чтобы декодировать текст:

echo -n "encodedtext" | openssl enc -base64 -d

encodedtext должен быть заменен на Base64-кодированный текст.

Примеры:

Кодирование:

echo -n "Hello, OpenSSL!" | openssl enc -base64
Output SGVsbG8sIE9wZW5TU0wTIQ==
openssl enc -base64 -in mydocument.txt -out encoded_document.txt

Декодирование:

echo -n "SGVsbG8sIE9wZW5TU0wTIQ==" | openssl enc -base64 -d
Output: Hello, OpenSSL!
openssl enc -base64 -d -in encoded_document.txt -out decoded_document.txt

3. Операции Base64 с помощью Python

Вы также можете выполнять операции Base64 с помощью Python, и вы можете сделать это сразу, так как модуль base64 включен в стандартную библиотеку Python. 

Кодирование Base64 с помощью Python

Кодирование Base64 в Python выполняется с помощью функции base64.b64encode().

Кодирование строки:

import base64


original_text = "Hello, Base64!"
encoded_text = base64.b64encode(original_text.encode()).decode()


print(encoded_text)

В приведенном выше примере текст "Hello, Base64!" преобразуется в его Base64-кодированное представление.

Кодирование файла:

import base64


with open("filename", "rb") as file:
    binary_data = file.read()
    encoded_data = base64.b64encode(binary_data).decode()


with open("encoded_file.txt", "w") as encoded_file:
    encoded_file.write(encoded_data)

"Filename" следует заменить на имя файла, который вы хотите закодировать, а "encoded_file.txt" - на желаемое имя закодированного файла.

Декодирование Base64 с помощью Python

Декодирование Base64 с помощью Pythong можно выполнить с помощью функции base64.b64decode().

Чтобы декодировать строку:

import base64


encoded_text = "SGVsbG8sIEJhc2U2NCE="
decoded_text = base64.b64decode(encoded_text).decode()


print(decoded_text)

В этом примере декодируется Base64-кодированная строка "SGVsbG8sIEJhc2U2NCE=".

Декодирование файла:

import base64


with open("encoded_file.txt", "r") as encoded_file:
    encoded_data = encoded_file.read()
    decoded_data = base64.b64decode(encoded_data)


with open("decoded_file.bin", "wb") as decoded_file:
    decoded_file.write(decoded_data)

"encoded_file.txt" следует заменить именем Base64-кодированного файла, а "decoded_file.bin" - желаемым именем декодированного файла.

4. Манипуляции с Base64 в Perl

Perl также предлагает возможности для использования операций кодирования и декодирования Base64 с помощью специального выделенного модуля MIME::Base64 с функциями encode_base64 и decode_base64 для кодирования и декодирования данных в формате Base64. 

Кодирование Base64 в Perl

Чтобы закодировать строку:

use MIME::Base64;


my $original_text = "Hello, Base64!";
my $encoded_text = encode_base64($original_text);


print $encoded_text;

В приведенном выше примере строка "Hello, Base64!" кодируется в ее Base64-представление.

Чтобы закодировать файл:

use MIME::Base64;


my $filename = "filename";
open my $fh, '<', $filename or die "Cannot open file: $!";
my $binary_data = do { local $/; <$fh> };
close $fh;


my $encoded_data = encode_base64($binary_data);


open my $encoded_fh, '>', "encoded_file.txt" or die "Cannot open file: $!";
print $encoded_fh $encoded_data;
close $encoded_fh;

Замените "filename" на имя файла, который вы хотите закодировать, а "encoded_file.txt" на желаемое имя файла соответственно.

Декодирование Base64 в Perl

Декодирование Base64-кодированных данных в Perl может быть выполнено с помощью функции decode_base64 из модуля MIME::Base64.

Декодирование строки:

use MIME::Base64;


my $encoded_text = "SGVsbG8sIEJhc2U2NCE=";
my $decoded_text = decode_base64($encoded_text);


print $decoded_text;

В приведенном примере декодируется строка "SGVsbG8sIEJhc2U2NCE=" в Base64-кодировке.

Декодирование файла:

use MIME::Base64;


my $encoded_filename = "encoded_file.txt";
open my $encoded_fh, '<', $encoded_filename or die "Cannot open file: $!";
my $encoded_data = do { local $/; <$encoded_fh> };
close $encoded_fh;


my $decoded_data = decode_base64($encoded_data);


open my $decoded_fh, '>', "decoded_file.bin" or die "Cannot open file: $!";
print $decoded_fh $decoded_data;
close $decoded_fh;

"encoded_file.txt" следует заменить именем Base64-кодированного файла "decoded_file.bin" на желаемое имя декодированного файла.

Заключение

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

# Как сделать Поделиться:
Статьи по Теме