Base32 エンコーダー / デコーダー
デコード済みテキスト
エンコード済みBase32
技術的な詳細
Base32エンコーダー/デコーダーの仕組み
このツールでできること
Base32エンコーダー/デコーダーは、データをBase32形式へ、またBase32形式から相互に変換します。Base32は、32個の印字可能なASCII文字(A–Z と 2–7)を使用するバイナリからテキストへのエンコード方式です。人が扱いやすく、大文字・小文字を区別しないよう設計されているため、小文字が利用できない環境や、人が手作業でエンコード文字列を書き写す必要がある場面に適しています。一般的な用途には、二要素認証アプリ向けのTOTPシークレットキーや、大文字・小文字を区別しないシステム上のファイルシステムパスなどがあります。
開発者によくある利用シーン
開発者は、Google Authenticatorのような認証アプリと互換性のあるOTP/TOTPシークレットキーを生成する際、URLやファイル名で安全に使えるコンパクトな識別子を作成する際、任意のバイト値を扱えないシステム向けにバイナリデータをエンコードする際にBase32エンコードを利用します。デコードは、OTPシークレットから生のバイト列を取り出す場合や、サードパーティサービスから受け取ったBase32エンコード済みペイロードを検証する場合によく必要になります。
データ形式、型、またはバリエーション
標準のBase32(RFC 4648)は、アルファベットA–Zと2–7を使用し、出力が8文字の倍数になるように=でパディングします。Base32hexは自然なソート順になるよう、アルファベット0–9とA–Vを使用します。エンコード後の出力は元の入力よりおよそ60%大きくなります。TOTPシークレットのような文脈では、パディングを省略できる場合があります。このツールはデコード時に標準版とパディングありの両方のバリアントを扱います。
よくある落とし穴とエッジケース
Base32は大文字・小文字を区別しないため、デコーダは処理前に入力を大文字へ正規化するべきです。無効な文字(A–Zと2–7以外)はデコードエラーの原因になります。Base32とBase32hexを混同しないでください。使用するアルファベットが異なり、出力も異なります。仕様で必要とされる場合はパディング文字が存在しなければなりません。パディング欠落を黙って受け入れる実装もあれば、失敗する実装もあります。
コードではなくこのツールを使うべき場面
TOTPシークレットを扱うときや、開発中にエンコードされたペイロードを確認するときなど、素早くBase32のエンコード/デコードを行うにはこのブラウザツールを使ってください。本番アプリケーションでは、base32(Python)、hi-base32(JavaScript)、Apache Commons Codec(Java)などの言語ネイティブなライブラリを使用し、エンコードが再現可能でテスト済みとなり、ビルドパイプラインに統合されるようにしてください。