> encode | decode | safe <
// 人が読みやすく曖昧さのない Base32 エンコーディング
かんたん操作
Base32 のエンコード/デコードを即時に行えるシンプルな UI。
ローカル処理
すべての変換はブラウザ内で行われます。データは端末の外に出ません。
読みやすい
A‑Z と 2‑7 のみを使用し、紛らわしい文字を避けます。
>> 技術情報
Base32 の仕組み:
Base32 は 32 文字(A‑Z, 2‑7)でバイナリデータを表現します。人が読みやすく、曖昧さを避ける設計です。
例:
"Hello" → JBSWY3DPEBLW64TMMQ======
Base32 を使う理由:
- >読みやすい出力
- >紛らわしい文字なし(0,1,O,I なし)
- >大文字/小文字を区別しない
- >ユーザー入力に適する
- >Base16 より短く、Base64 より長い
>> よくある質問
Base32 エンコードとは?
Base32 は 32 の記号(A‑Z, 2‑7)でバイナリデータを人間に読みやすく表現する方式です。
いつ Base32 を使うべき?
読みやすく曖昧さのないエンコードが必要な場合(認証トークン、API キー、ユーザー向け ID など)。
なぜすべての文字/数字を使わない?
0, 1, O, I は見た目が似て紛らわしいため除外されています。
等号(=) の意味は?
パディング用の文字で、長さを 8 の倍数にそろえて正しくデコードできるようにします。
// クイックリファレンス
| 入力 | Base32 | Base64 |
|---|---|---|
| f | MY====== | Zg== |
| fo | MZXQ==== | Zm8= |
| foo | MZXW6=== | Zm9v |
| foob | MZXW6YQ= | Zm9vYg== |
| fooba | MZXW6YTB | Zm9vYmE= |
| foobar | MZXW6YTBOI====== | Zm9vYmFy |
// コード例
CLI echo -n foobar | base32
Python base64.b32encode(b'foobar') / base64.b32decode(s)
Go base32.StdEncoding.EncodeToString([]byte("foobar"))
Java new Base32().encodeToString(bytes) // commons-codec
Node.js npm i hi-base32 // no built-in
>> その他の質問
Q: Base32、Base64、Base16の違いは何ですか?
A: 3つともRFC 4648で定義され、1文字あたりのビット数だけが異なります。Base16は4ビット(オーバーヘッド100%)、Base32は5ビット(60%)、Base64は6ビット(33%)です。Base32は長くなりますが読みやすく、大文字小文字を区別しません。
Q: Base32のデコードは大文字小文字を区別しますか?
A: いいえ。RFC 4648のアルファベットは大文字ですが、デコーダは小文字も同様に扱うべきとされています。このツールはデコード前に入力を大文字へ変換するため、jbswy3dp と JBSWY3DP は同じ結果になります。
Q: Base32は実際にどこで使われていますか?
A: 主にTOTP/2FAの秘密鍵(Google Authenticator、Authyなど)、Tor v3のオニオンアドレス(56文字)、一部のファイルシステムやDNSラベルなど大文字小文字を区別しないシステムの識別子です。