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

Прежде всего, я был бы упущен, если бы не упомянул, что вам не обязательно делать это в интерфейсе командной строки. Есть два родственных веб-сайта, Base64 Decode и Base64 Encode, которые решают эту задачу. Я никоим образом не связан с ними, но я совершенно уверен, что многие, многие разработчики знакомы с ними.

Однако существуют различные причины, по которым вы не можете использовать эти сайты; во-первых, возможно, вы не в сети и не можете получить к ним доступ. Во-вторых, возможно, вы не полностью доверяете своим секретным данным, передаваемым на сервер незнакомого человека. Оба аргумента действительно важны, и поэтому я предлагаю методы, которые собираюсь рассмотреть.

Кодировать в base64

Во-первых, чтобы закодировать в base64, выполните в терминале следующую команду:

echo -n 'username' | base64

Давайте рассмотрим различные составляющие этого.

  • echo: Эта команда записывает строку в стандартный вывод, что в менее технических терминах означает, что она буквально печатает все, что вы пишете, на экран снова.
  • -n: этот флаг указывает, что вы хотите, чтобы вывод выводился с новой строки. На самом деле это очень полезно, потому что в противном случае строка в кодировке base64 будет печататься сразу после этого без пробела или чего-то еще. Просто скопировать и вставить сложнее, и вы даже можете случайно скопировать часть начальной команды со строкой, что, безусловно, вызовет головную боль в строке. Я рекомендую вам иметь привычку включать этот флаг, даже если нет необходимости заставлять команду работать.
  • 'username': Здесь вы помещаете строку, которую хотите кодировать base64; буквально не обязательно username.
  • |: Это канал, который сообщает команде, что вы хотите перенаправить вывод левой части в правую часть. В этом случае мы не просто хотим повторять то, что написали; мы хотим его закодировать! Таким образом, мы предоставим справа инструкции по кодированию строки.
  • base64: Это программа, входящая в пакет coreutils (или GNU Core Utilities), который входит в комплект поставки вашего Mac или ОС Linux. Другие знакомые вам инструменты, которые также есть в coreutils, включают ls, rm и cat. По сути, это сделает всю тяжелую работу по кодированию строки, которую вы указали ранее.

Результат выполнения вышеуказанной команды выглядит следующим образом:

dXNlcm5hbWU=

Декодировать в base64

Допустим, вы действительно начали с указанной выше строки в кодировке base64, dXNlcm5hbWU=. Если вы хотите его декодировать, процесс на самом деле так же прост, как и в предыдущем разделе.

Просто запустите следующую команду:

base64 --decode dXNlcm5hbWU=

Это должно быть довольно легко понять; флаг --decode делает именно то, что вы думаете! Результат:

username

Легко запомнить, но полезно на всю жизнь

Если вы работаете с программным обеспечением, я не думаю, что приведенный выше подзаголовок является большим преувеличением; Я постоянно использую эти команды и очень за них благодарен.