環境変数を読んでいると、意味不明な文字列——eyJhbGciOiJIUzI1NiJ9——が見つかります。それがBase64であることは分かっていても、そのままでは読めません。そこでコピーしてターミナルを開き、echo "..." | base64 --decodeと入力し、macOSでは-Dフラグが必要だったことを思い出し、もう一度試して、ようやくデコードされた出力を目にします。本来2秒で済むはずの作業に30秒を費やしたことになります。
Base64エンコーディングはあらゆる場所に登場します。認証ヘッダー、メールの添付ファイル、CSSのデータURI、Kubernetesのシークレット、CI/CDパイプラインの設定など。APIやインフラを扱っているなら、1日に何度もBase64をデコードしているはずです。
ターミナルが力不足な理由
macOSに組み込まれているbase64コマンドは動作しますが、いくつか癖があります。デコード用フラグはmacOSでは大文字の-D、Linuxでは小文字の-dで、両方の環境を行き来する人を混乱させます。複数行の入力には慎重なクォートが必要です。そして視覚的なフィードバックが一切ないため、コマンドを入力して文字列が返ってきても、入力を誤って切り詰めていないか確信が持てません。
ブラウザベースのツールはユーザビリティの問題を解決しますが、セキュリティ上の問題を生み出します。Base64でエンコードされた値は、多くの場合APIキーやトークン、証明書データなどのシークレットです。それをウェブサイトに貼り付けることは、そもそもエンコードした目的を台無しにしてしまいます。
ローカルでワンクリックにエンコード・デコード
Bellowsは、macOS向け41ツールの開発者向けツールキットの一部として、Base64エンコーダー/デコーダーを搭載しています。エンコードされた文字列を貼り付ければ、すぐにデコードされた出力が表示されます。方向を切り替えれば、平文をBase64にエンコードできます。すべてあなたのマシン上で完結し、データが外部に送信されることはありません。
よくある使用例
YAMLマニフェストにBase64で保存されたKubernetesシークレットのデコード。JWT(Base64urlでエンコードされている)のペイロードの確認。画像をHTMLに埋め込むためのBase64データURIへの変換。HTTP Basic認証ヘッダー用の認証情報のエンコード。これらはいずれも、ターミナルコマンドやブラウザとの往復ではなく、貼り付けて読むだけの1回の操作で済みます。
クリップボード対応
Base64文字列をコピーして、メニューバーからBellowsを開きます。アプリはクリップボード上のエンコードされたコンテンツを検出し、Base64ツールを提案するので、手動でツールへ移動する手間が省けます。
インストールの手間なし
メンテナンスが必要なHomebrewのフォーミュラやPythonスクリプトとは異なり、BellowsはMac App Storeから一度インストールすれば、自動的にアップデートされます。Apple SiliconでもIntel Macでも、依存関係なしにネイティブで動作します。