らっちゃいブログ

日々の学びと気づきを発信するブログ

Linuxのbase64コマンドでハマったのでメモ

スポンサーリンク

今日は小ネタで失礼します。

ベーシック認証のトークン作るのに base64 コマンド使ったんですが、どうも認証が通らない。

base64 コマンド自体はこんな感じで叩きました。

$ echo "user:pass" | base64
dXNlcjpwYXNzCg==

ちゃんと作れてるように見えます。デコードしてみても、合ってそうです。

$ echo "dXNlcjpwYXNzCg==" | base64 -d
user:pass

なぜ認証が通らないか?

それは echo が改行コードも出力していたから!

$ echo "dXNlcjpwYXNzCg==" | base64 -d
user:pass[LF] ←実際にはここに改行コードが入ってた

というわけで、echo コマンドに -n オプションを与えて改行を出力しないように修正したら無事認証が通りましたとさ。

$ echo -n "user:pass" | base64
dXNlcjpwYXNz

我ながらしょうもないミスをしたものだ。。