·4分で読めます

MacのBase64エンコーダー/デコーダー

ターミナルコマンドやウェブツールを使ってBase64文字列をデコードすることは、ログや設定ファイルでエンコードされた値に出くわすたびにあなたの集中を妨げます。

環境変数を読んでいると、意味不明な文字列——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にエンコードできます。すべてあなたのマシン上で完結し、データが外部に送信されることはありません。

Bellows Base64 encoder and decoder tool on macOS

よくある使用例

YAMLマニフェストにBase64で保存されたKubernetesシークレットのデコード。JWT(Base64urlでエンコードされている)のペイロードの確認。画像をHTMLに埋め込むためのBase64データURIへの変換。HTTP Basic認証ヘッダー用の認証情報のエンコード。これらはいずれも、ターミナルコマンドやブラウザとの往復ではなく、貼り付けて読むだけの1回の操作で済みます。

クリップボード対応

Base64文字列をコピーして、メニューバーからBellowsを開きます。アプリはクリップボード上のエンコードされたコンテンツを検出し、Base64ツールを提案するので、手動でツールへ移動する手間が省けます。

インストールの手間なし

メンテナンスが必要なHomebrewのフォーミュラやPythonスクリプトとは異なり、BellowsはMac App Storeから一度インストールすれば、自動的にアップデートされます。Apple SiliconでもIntel Macでも、依存関係なしにネイティブで動作します。

Mac App StoreでBellowsを入手する

次の記事

Bellows

41 developer tools in one native Mac app — JSON, JWT, Base64, hashes, and more.

Get Bellows on the Mac App Store