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
我ながらしょうもないミスをしたものだ。。