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