Intereting Posts
Найдите строку, затем удалите два тега и повторите Как протестировать модифицированный исходный код FreeBSD? Как grep файл журнала с определенной даты до конца файла? Когда вилки процесса являются копией его виртуальной или резидентной памяти? Как отделить окна Chrome App в KDE Plasma 5? Запуск сервисов без sudo медленная скорость передачи первичного раздела dd Как «правильно» запустить приложение из оболочки правильное параллельное использование xargs Получить текущий виртуальный рабочий стол – номер / имя / тег / идентификатор? Добавить во второй столбец Ubuntu (14.10, 14.04) Проблемы рендеринга графики с nvidia 331, 346 при одновременном использовании двух экранов (встроенных и внешних) Почему procmail не запускается? Есть ли способ в Linux иметь одного пользователя, не являющегося пользователем root, проверить, имеет ли другой пользователь, не являющийся пользователем root, права на папку / файл? почему оболочка bash по умолчанию debian бесцветна?

Javascript BTOA против base64 в bash?

Мне нужно преобразовать комбинацию имени пользователя и пароля в base64 перед отправкой в ​​API.

Функция javascript BTOA работает для меня, но когда я пытаюсь использовать команду base64 в bash, я получаю несколько разные результаты.

Javascript:

btoa("hello"); # aGVsbG8= btoa("username:password"); # dXNlcm5hbWU6cGFzc3dvcmQ= btoa("testing"); # dGVzdGluZw== 

Bash:

 echo hello | base64 # aGVsbG8K echo username:password | base64 # dXNlcm5hbWU6cGFzc3dvcmQK echo testing | base64 # dGVzdGluZwo= 

Результаты всегда схожи, но разные.

Сервер ожидает кодировку стиля JS, но мне нужно использовать bash.

Почему результаты разные, но похожие? Как я могу получить результаты из javascript с помощью bash?

echo «helpfully» добавляет новую строку для вывода, поэтому base64 покорно кодирует это. Или скажите echo чтобы не добавлять новую строку или использовать printf.

 $ echo hello | od -c 0000000 hello \n 0000006 $ echo -n hello | od -c 0000000 hello 0000005 $ printf '%s' hello | od -c 0000000 hello 0000005 $ printf '%s' hello | base64 aGVsbG8= $ echo -n hello | base64 aGVsbG8=