Base32エンコーダー・デコーダー
Base32は、32個の文字でバイナリデータを表します。数字は2-7の6個、文字は26個の大文字を使い、読み間違いを避けるため0/Oや1/Iは含みません。そのため、人が入力したり声に出して読んだりするものに適しています。2要素認証のTOTPシークレット、バウチャーコード、大文字小文字を区別しない識別子などです。このツールは、RFC 4648に従い、標準の=パディング付きでテキストをBase32へエンコードし、元へデコードします。
Base32をエンコードまたはデコードする方法
-
1
変換するテキストを貼り付け
入力はバイト列として扱われます。テキスト入力ではUTF-8が標準の解釈です。
-
2
方向を選ぶ
エンコードは生のバイト列をBase32文字列にし、デコードはバイト列を復元します。
-
3
パディングの動作を確認
RFC 4648では、エンコード結果の長さが8の倍数になるまで`=`で埋めます。デコード時はパディングあり・なしの両方を受け付けます。
-
4
結果をコピー
エンコード結果は大文字で、8の倍数になるまで`=`で埋められます。
RFC 4648アルファベット
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2 3 4 5 6 7
0、1、8、9はありません。各文字は5ビット(2^5 = 32)を表すため、入力5バイトが出力8文字になります。
具体例
ASCII文字列foo(バイト列 0x66 0x6F 0x6F = 01100110 01101111 01101111)をエンコードします。
- 5ビットごとのグループに分割:
01100 11001 10111 10110 1111(最後のグループはパディング) - アルファベットに対応付け:
MZXW6 - 8文字にするため
===パディングを追加:MZXW6===
パディングと長さのルール
| 入力バイト数 | 出力文字数 | パディング |
|---|---|---|
| 1 | 8 | ====== |
| 2 | 8 | ==== |
| 3 | 8 | === |
| 4 | 8 | = |
| 5 | 8 | (なし) |
RFC 4648以外のバリエーション
- Base32 Hex - アルファベット
0-9A-V。DNSSECのNSEC3で使われます。 - Crockford’s Base32 - 人の入力に最適化されたアルファベット。デコード時に
O→0、I/L→1を置換します。ULIDや一部のライセンスキーで使われます。
このツールが対応するのは標準RFC 4648のみです。上記のバリエーションには専用の変換ツールを使ってください。
TOTPシークレット
Google Authenticatorや現代的な2FAアプリで使われるotpauth:// URI形式では、共有シークレットをパディングなしのBase32でエンコードします。「My Service」のQRコードをスキャンすると、secret=パラメータがBase32文字列になっています。このツールでデコードすると、HMACが使う生のバイト列を確認できます。
よくある質問
Base32は大文字小文字を区別せず、似た文字を避けます。人が読む・入力するものではこれが重要です。Base64は同じバイト列に対して短くなりますが、Iとl、0とOを区別する必要があり、手書きや小さい印刷では失敗しやすくなります。
RFC 4648はエンコード時のパディングを定めています。このツールはエンコード結果を常に8の倍数になるまで=で埋めます。実際の多くの利用者(TOTPアプリ、ULIDライブラリ、DNSSECリゾルバ)はパディングなしの入力を受け入れ、このデコーダーもパディングの有無どちらの形式も受け付けます。
標準Base32には0、1、8、9がなく、常に大文字です。デコーダーはRFC 4648アルファベット外の文字を黙って無視するため、小文字や特殊な文字を含む入力は誤ったバイト列にデコードされます。デコード前に、入力を大文字のA-Zと数字2-7に正規化してください。
はい。結果を計算するため、テキストはページのサーバーへ送信されます。また複数ステップ表示では、同じテキストがステップのリンクにも含まれます。保存や記録はされません。
関連ツール
CSRジェネレーター
ブラウザでPKCS#10形式のCSRと対応するRSA秘密鍵を作成。DNS名やIPアドレスをSANに追加し、PEMファイルをダウンロードできます。
パスフレーズジェネレーター
ランダムな一般的な単語から覚えやすいパスフレーズを生成します。単語数、区切り文字、大文字化、末尾に付ける数字を調整できます。
GweiからEtherへの変換ツール
Gwei単位の金額をEther(ETH)に最大18桁の小数で変換します。ガス料金の推定や取引データの読み取りに役立ちます。
暗号形式の判別
Base64、16進数、2進数、モールス信号、bcrypt、JWTに似た構造を確認。複数の一致と、それぞれから分かることの限界を示します。
ポリュビオス暗号エンコーダー
固定5×5のI/J共有表を使い、ラテン文字をポリュビオス座標に変換したり、空白区切りの数値ペアを復号したりできます。
AES暗号化 / 復号
OpenSSLのAES暗号方式で低リスクのテキストを暗号化・復号します。パスフレーズはSHA-256でハッシュされ、Base64出力はIVと暗号文です。
このツールは他の言語でも利用できます
- Encoder dan Decoder Base32 [ID]
- Koder i dekoder Base32 [PL]
- Codificador y Decodificador Base32 [ES]
- Codificador e Decodificador Base32 [PT]
- ตัวเข้ารหัสและถอดรหัส Base32 [TH]
- Base32 인코더 및 디코더 [KO]
- Bộ mã hóa và giải mã Base32 [VI]
- Base32-kodare och avkodare [SV]
- مشفر ومفكك Base32 [AR]
- Base32-Encoder/Decoder [DE]
- Encodeur et décodeur Base32 [FR]
- Base32 encoder en decoder [NL]
- Base32 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base32 [IT]
- Кодировщик и декодировщик Base32 [RU]
- Base32 Kodlayıcı ve Çözücü [TR]
- Base32 编码器和解码器 [ZH]