> encode | decode | safe <

// 人が読みやすく曖昧さのない Base32 エンコーディング

[SIMPLE]

かんたん操作

Base32 のエンコード/デコードを即時に行えるシンプルな UI。

[SECURE]

ローカル処理

すべての変換はブラウザ内で行われます。データは端末の外に出ません。

[READABLE]

読みやすい

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 の倍数にそろえて正しくデコードできるようにします。

// クイックリファレンス

入力Base32Base64
fMY======Zg==
foMZXQ====Zm8=
fooMZXW6===Zm9v
foobMZXW6YQ=Zm9vYg==
foobaMZXW6YTBZm9vYmE=
foobarMZXW6YTBOI======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ラベルなど大文字小文字を区別しないシステムの識別子です。