Основи командного рядка Linux: Кодування та декодування рядків Base64

Основи командного рядка Linux: Кодування та декодування рядків Base64

30.04.2024
Автор: HostZealot Team
2 мін.
18

Кодування та декодування 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 декодування виконується тією ж командою base64 з додаванням опції -d .

Щоб декодувати файл, введіть:

base64 -d encodedfile > outputfile

Endodedfile слід замінити на назву вашого файлу, а outputfile - на бажану назву вихідного файлу.

Щоб декодувати текст, введіть:

echo -n "encodedtext" | base64 -d

Замініть "encodedtext" текстом, який потрібно закодувати.

Наприклад:

Кодування:

echo -n "Hello, Base64!"| base64
Output: SGVsbG8sIEJhc2U2NCE=>> 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

Ви можете кодувати файл або текст за допомогою OpenSSL, використовуючи команду 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 мовою Python можна виконати за допомогою функції 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;

У вищенаведеному прикладі декодується закодований у Base64 рядок "SGVsbG8sIEJhc2U2NCE=".

Декодування файлу:

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 для різних інтерфейсів. Ми сподіваємося, що ця інструкція була достатньо зрозумілою і бажаємо вам успіхів.

# Як зробити Поділитися:
Статті за темою