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に正規化してください。
はい。結果を計算するため、テキストはページのサーバーへ送信されます。また複数ステップ表示では、同じテキストがステップのリンクにも含まれます。保存や記録はされません。
関連ツール
Atbash暗号エンコーダー
A-ZをZ-Aに対応させるヘブライ系の換字式暗号、Atbashでテキストをエンコードまたはデコードできます。同じ操作で暗号化と復号ができます。
Base64ファイルエンコーダー
あらゆるファイル(PDF、ZIP、画像、実行ファイル)をBase64テキストにエンコードし、JSON、メール、YAML、data URIへ埋め込めます。ブラウザ内でローカルに動作し、アップロードはありません。
Base58エンコーダー・デコーダー
UTF-8テキストや16進バイト列をエンコードし、Bitcoin、Ripple、Flickrの各アルファベットでBase58を安全にデコードします。
チェックサム検証
任意のテキストの MD5、SHA-1、SHA-256、SHA-384、SHA-512、CRC32 チェックサムを計算し、期待値と比較して一致・不一致を明確に判定します。
CSRジェネレーター
PEMエンコードされた証明書署名要求と対応するRSA秘密鍵を生成します。コモンネーム、組織の項目、鍵のサイズ(2048、3072、4096ビット)を指定できます。
SSL証明書ジェネレーター
自己署名のSSL/TLS証明書とRSA秘密鍵をすべてブラウザ内で生成します。Common Name、SAN、有効期間をカスタマイズし、PEM形式で書き出します。
このツールは他の言語でも利用できます
- Base32-Encoder/Decoder [DE]
- Encoder dan Decoder Base32 [ID]
- Base32 인코더 및 디코더 [KO]
- Base32 编码器和解码器 [ZH]
- Codificador y Decodificador Base32 [ES]
- Base32-kodare och avkodare [SV]
- Bộ mã hóa và giải mã Base32 [VI]
- Base32 Kodlayıcı ve Çözücü [TR]
- Base32 encoder en decoder [NL]
- ตัวเข้ารหัสและถอดรหัส Base32 [TH]
- Base32 Encoder and Decoder [EN]
- Encodeur et décodeur Base32 [FR]
- Codificador e Decodificador Base32 [PT]
- مشفر ومفكك Base32 [AR]
- Koder i dekoder Base32 [PL]
- Codificatore e Decodificatore Base32 [IT]
- Кодировщик и декодировщик Base32 [RU]