3️⃣ Base32エンコーダ
Base32の符号化・復号(RFC 4648)。A-Zと2-7を使用し、大文字小文字を区別せずバイナリデータを表現。
Base32について
Base32 は RFC 4648 で定義されたバイナリ→テキスト符号化方式です。A-Z と 2-7 からなる 32 文字のアルファベットでバイナリデータを表現し、大文字小文字を区別せず、視覚的に紛らわしい文字(0、1、8、9、O、I)を避けています。5 バイトの入力ごとに 8 文字の出力になり、'=' で 8 文字の倍数に揃えます。このツールはすべてブラウザ内で完結——アップロードは一切ありません。
仕組み
- エンコード —— バイトを 40 ビット(5 バイト)ブロックにグループ化し、8 つの 5 ビットグループに分割。各グループを A-Z2-7 のアルファベットの 1 文字に対応付けます。
- デコード —— 各文字を 5 ビット値に戻し、バイトに再構築します。パディング '=' は無視されます。
- 出力は常に 8 文字の倍数で、残り位置を '=' で埋めます。
- 符号化は生バイトに対して行われ、UTF-8 のマルチバイト文字はより長い Base32 出力になります。
ユースケース
- 二要素認証アプリ向けの TOTP/HOTP シークレットキーの符号化。
- 大文字小文字を区別しないチャネル(メール、QRコード、DNS)でのバイナリデータ転送。
- 電話で読み上げたり手動入力しやすい形式での鍵保管。
- ランダムバイトの短く人間に優しい表現の生成。
よくある質問
なぜアルファベットに 0、1、8、9、O、I がないのですか? これらは読み取りや入力の際に他の文字と混同しやすいため、Base32 の 32 文字アルファベットは意図的に除外しています。
なぜ符号化後の出力が入力より長いのですか? Base32 はデータを元のサイズの約 160%(5 バイトあたり 8 文字)に拡張し、さらにパディングが加わります。
末尾の '=' は何ですか? 出力を 8 文字の倍数に揃えるパディングです。RFC 4648 では必須ですが、デコーダでは無視されます。
テキストはアップロードされますか? いいえ。すべての符号化・復号はローカルブラウザで行われます。