Base32 デコーダー

Base32 や base32hex を UTF-8 テキストまたは 16 進バイトにデコードします。大文字小文字を区別せず、パディングは任意、空白は無視。TOTP のシークレットの確認に便利です。

48 文字 · 48 バイト(UTF-8)

0 文字 · 0 バイト(UTF-8)

すべてブラウザ内で実行されます。データがアップロードされることはありません。

Base32 デコードとは?

Base32(RFC 4648)を元のバイト列にデコードし、UTF-8 のテキストまたは 16 進で表示します。入力は大文字小文字を区別せず、= パディングは任意で、スペース(グループ化された TOTP のシークレットなど)は無視されます。

Base32 デコードの使い方

  1. Base32 の文字列を 入力 に貼り付けます。
  2. エンコードに使われた アルファベット(標準または拡張 16 進)を選びます。
  3. テキストを 出力 で確認します。TOTP のキーのようなバイナリデータでは、出力形式 を 16進バイト列 にします。
  4. 結果をコピーします。

例

入力
mzxw6ytboi
出力
foobar

小文字でパディングなしの入力も受け付けます。

Base32 デコードを使うべき場面

2FA のシークレット、onion サービスのキー、NSEC3 のハッシュなどの Base32 の値を確認するときに使います。TOTP のシークレットはランダムなバイト列なので、テキストではなく 16 進で表示してください。

Base32 デコードの仕組み

各文字を選択したアルファベットで引いて 5 ビットの値を得ます。ビットを連結し、8 ビットがそろうごとに 1 バイトになります。末尾に余ったビットは、RFC 4648 の規定どおり破棄されます。無効な文字やあり得ない長さ(最後のブロックが 1、3、6 文字)はエラーとして報告されます。

一般的な使用例

  • 生のキーを期待するライブラリのために、TOTP のシークレットを 16 進に変換する
  • 別のシステムが生成した Base32 をデバッグする
  • RFC 4648 のテストベクターを検証する

よくある質問

TOTP のシークレットが変な文字にデコードされるのはなぜですか?

TOTP のシークレットはテキストではなくランダムなバイト列です。出力形式として 16進バイト列 を選んでください。

0、1、8 のような文字は使えますか?

標準のアルファベット(A–Z、2–7)では使えず、「invalid character」エラーになります。base32hex では有効です。

大文字小文字は関係ありますか?

いいえ。入力はデコード前に大文字に変換されます。

他のカテゴリを見る