Base32 デコーダー
Base32 や base32hex を UTF-8 テキストまたは 16 進バイトにデコードします。大文字小文字を区別せず、パディングは任意、空白は無視。TOTP のシークレットの確認に便利です。
48 文字 · 48 バイト(UTF-8)
0 文字 · 0 バイト(UTF-8)
すべてブラウザ内で実行されます。データがアップロードされることはありません。
Base32 デコードとは?
Base32(RFC 4648)を元のバイト列にデコードし、UTF-8 のテキストまたは 16 進で表示します。入力は大文字小文字を区別せず、= パディングは任意で、スペース(グループ化された TOTP のシークレットなど)は無視されます。
Base32 デコードの使い方
- Base32 の文字列を 入力 に貼り付けます。
- エンコードに使われた アルファベット(標準または拡張 16 進)を選びます。
- テキストを 出力 で確認します。TOTP のキーのようなバイナリデータでは、出力形式 を 16進バイト列 にします。
- 結果をコピーします。
例
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 では有効です。
大文字小文字は関係ありますか?
いいえ。入力はデコード前に大文字に変換されます。