Base32エンコード / デコード

テキストやファイルをBase32にエンコード、またはBase32からテキストにデコード。Standard、Base32hex、Crockford、z-base-32の各バリアントに対応。

このツールについて

Base32エンコード / デコードツールは、テキストやファイルをブラウザ内で直接Base32エンコーディングとの相互変換を行います。Base32はRFC 4648で定義されたバイナリ-テキストエンコーディング方式で、32文字のアルファベットを使用してバイナリデータを表現します。Base64とは異なり、Base32は大文字と数字2-7のみを使用するため、大文字小文字を区別しないシステムでも安全に使用できます。

Base32エンコーディングは、TOTP(時間ベースワンタイムパスワード)HOTPの実装で最もよく見られます。これらでは共有シークレットがQRコードや手動入力用にBase32でエンコードされます。また、DNSラベル、ファイルシステム名、大文字小文字を区別しない英数字文字列が必要なあらゆるコンテキストでも使用されます。Google AuthenticatorやAuthyなどの多くの二要素認証(2FA)アプリがBase32エンコードされたシークレットに依存しています。

このツールは4つのBase32バリアントに対応しています。**Standard Base32(RFC 4648)**はアルファベットA-Zと2-7を使用し、=パディングを付加します。Base32hexは0-9とA-Vを使用し、エンコードデータのソート順を保持します。Crockford Base32は0-9とA-Zを使用しますが、人間が読む際の曖昧さを減らすためにI、L、O、Uの文字を除外しています。大文字小文字を区別せず、一般的な読み間違い(Oを0に、IとLを1に)をマッピングし、パディングを使用しません。z-base-32は人間の可読性と口頭コミュニケーションに最適化された特別に選ばれたアルファベットを使用し、パディングなしです。

Base64と比較すると、Base32の出力は約20%大きくなります(出力対入力比が8:5、Base64は4:3)。ただし、大文字小文字を区別しないエンコーディング、DNS互換性、人間にやさしい表現が必要なコンテキストでは利点があります。すべての処理はネイティブJavaScript APIを使用してクライアントサイドで実行され、データがブラウザから送信されることは一切ありません。

使い方

  1. 上部のタブからエンコードまたはデコードを選択します。
  2. ドロップダウンからBase32バリアントを選択します:StandardBase32hexCrockfordz-base-32
  3. 入力パネルにテキストを入力または貼り付けます。自動変換がオンの場合、出力が即座に更新されます。
  4. ファイルをエンコードするには、ドロップゾーンにドラッグするか、参照をクリックしてファイルを選択します。
  5. **パディング(=)**を切り替えて、StandardとBase32hexバリアントのパディング文字を追加または削除します。
  6. スワップを使って入力と出力を交換し、方向を自動的に切り替えます。
  7. コピーをクリックするか、Ctrl+Shift+Cを押して出力をクリップボードにコピーします。

よくある質問

データは安全ですか?

はい。すべてのエンコードとデコードはJavaScriptを使用してブラウザ内で完全に実行されます。データがサーバーに送信されることはなく、保存やログ記録も一切ありません。

Base32とBase64の違いは何ですか?

どちらもバイナリ-テキストエンコーディング方式ですが、使用するアルファベットと出力サイズが異なります。Base32は32文字(A-Z、2-7)を使用し大文字小文字を区別しません。Base64は64文字(A-Z、a-z、0-9、+、/)を使用し大文字小文字を区別します。Base32の出力は入力より約60%大きくなり、Base64は約33%大きくなります。

なぜBase32がTOTP/2FAシークレットに使われるのですか?

TOTPシークレットはQRコードまたはユーザーの手動入力で共有されることが多いです。Base32の大文字小文字を区別しない英数字のみの出力は、大文字小文字が混在し特殊文字を含むBase64と比較して、読み取り、入力、コピーの際にエラーが少なくなります。

Crockford Base32とは何ですか?

Crockford Base32はDouglas Crockfordが設計した、人間にやさしいバリアントです。数字1や0との混同を避けるためにI、L、O、Uの文字を除外し、偶発的な不適切語句の生成も防ぎます。デコード時の一般的な読み間違いもマッピングします(例:'O'は'0'として、'I'と'L'は'1'として処理)。

z-base-32とは何ですか?

z-base-32は、人間の可読性と口頭コミュニケーションに最適化された特別に設計されたアルファベット(ybndrfg8ejkmcpqxot1uwisza345h769)を使用するバリアントです。混同しやすい文字を避け、パディングを使用しません。一部のP2Pや暗号化アプリケーションで使用されています。

パディングの切り替えは何をしますか?

Standard Base32とBase32hexは出力を=文字でパディングして長さを8の倍数にします。パディングを無効にすると、末尾の文字が削除されます。多くの最新の実装はパディングなしの入力を受け付けますが、厳密なパーサーはパディングを要求する場合があります。Crockfordとz-base-32はパディングを使用しません。

バイナリファイルをエンコードできますか?

はい。エンコードモードで、入力エリアに任意のファイルをドラッグ&ドロップするか、参照をクリックしてファイルを選択します。ファイルはブラウザ内で生バイトとして読み取られ、Base32にエンコードされます。画像、アーカイブ、ドキュメント、その他のバイナリファイルに対応しています。

関連ツール