Для кодирования или декодирования стандартного ввода/вывода или любого содержимого файла Linux использует систему кодирования и декодирования base64. Данные кодируются и декодируются, чтобы облегчить процесс передачи и хранения данных. Кодирование и декодирование не похожи на шифрование и дешифрование. Закодированные данные могут быть легко раскрыты путем декодирования.
Таким образом, этот инструмент командной строки не может использоваться для защиты данных. Для кодирования любых данных используются алфавит, число и символ '='.
Синтаксис
1 | base64 [OPTION] [INFILE] [OUTFILE] |
Вы можете использовать различные типы опций с командой base64. При кодировании или декодировании данные могут быть взяты из любого файла или стандартного ввода. После кодирования или декодирования вы можете отправить вывод в файл или распечатать его в терминале.
Параметры
- -e или -encode - Эта опция используется для кодирования любых данных со стандартного ввода или из любого файла. Это опция по умолчанию.
- -d или -decode - Эта опция используется для декодирования любых закодированных данных со стандартного ввода или из любого файла.
- -n или -noerrcheck - По умолчанию base64 проверяет ошибки при декодировании любых данных. Вы можете использовать опцию -n или -noerrcheck, чтобы игнорировать проверку во время декодирования.
- -u или -help - Эта опция используется для получения информации об использовании данной команды.
- -i, -ignore-garbage - Эта опция используется для игнорирования неалфавитных символов при декодировании.
- -copyright - Эта опция используется для получения информации об авторских правах.
- -version - Используется для получения информации о версии.
Как использовать команду base64 в Linux, показано в этом уроке на нескольких примерах.
Использование base64
Пример 1: Кодирование текстовых данных
Вы можете закодировать любые текстовые данные с помощью base64 в командной строке. Когда вы хотите закодировать какие-либо данные с помощью base64, использование опции -e или -encode является необязательным. Поэтому, если вы не укажете никакой опции в base64, то он будет работать для кодирования. Следующая команда закодирует данные 'g-soft.info' и выведет закодированные данные в качестве вывода.
1 | echo 'g-soft.info' | base64 |
Вывод:
Пример 2: Декодирование текстовых данных
Следующая команда декодирует закодированный текст 'bGludXhoaW50LmNvbQ==' и выведет исходный текст.
1 | echo 'Zy1zb2Z0LmluZm8K' | base64 --decode |
Вывод:
Пример 3: Кодирование текстового файла
Создайте текстовый файл с именем 'sample.txt' со следующим текстом, который будет закодирован с помощью base64.
Вы можете вывести закодированный текст в командной строке или сохранить его в другом файле. Следующая команда закодирует содержимое файла sample.txt и выведет закодированный текст в терминал.
1 | base64 sample.txt |
Вывод:
Следующие команды закодируют содержимое файла sample.txt и сохранят закодированный текст в файл encodedData.txt.
1 2 | base64 sample.txt > encodedData.txt cat encodedData.txt |
Выходные данные:
Пример 4: Декодирование текстового файла
Следующая команда декодирует содержимое файла encodedData.txt и выведет вывод в терминале
1 | base64 -d encodedData.txt |
Вывод:
Следующие команды декодируют содержимое файла encodedData.txt и сохраняют декодированное содержимое в файл originalData.txt.
1 2 | base64 --decode encodedData.txt > originalData.txt cat originalData.txt |
Выходные данные:
Пример 5: Кодирование произвольного текста, заданного пользователем
Создайте файл bash с именем encode_user_data.sh со следующим кодом. Следующий скрипт примет на вход любые текстовые данные, закодирует их с помощью base64 и выведет закодированный текст.
1 2 3 4 5 | #!/bin/bash echo "Введите текст для кодирования" read text etext=`echo -n $text | base64` echo "Закодированный текст представляет собой : $etext" |
Запустите скрипт.
1 | bash encode_user_data.sh |
Выходные данные:
Пример 6: Проверка валидности пользователя путем декодирования текста
Создайте bash-файл с именем check.sh и добавьте в него следующий код. В этом примере у пользователя берется секретный текст. Предопределенный закодированный текст декодируется с помощью base64 и сравнивается с введенным пользователем. Если оба значения равны, то результатом будет "Вы не аутентифицированы", в противном случае результатом будет "Вы не аутентифицированы". Используя этот простой код декодирования, можно очень легко выполнить обычную проверку подлинности.
1 2 3 4 5 6 7 8 9 | #!/bin/bash echo "Введите ваш секретный код" read text otext=`echo 'MTIzNAo=' | base64 --decode` if [ "$text" == "$otext" ]; then echo "Вы прошли аутентификацию" else echo "Вы не аутентифицированы" fi |
Запустите скрипт.
1 | bash check.sh |
Вывод:
Заключение
Для любых чувствительных данных, таких как пароль или любые конфиденциальные данные, система кодирования и декодирования не подходит. Для защиты таких данных необходимо использовать систему шифрования и дешифрования.