Base32 エンコーダー/デコーダー
Base32エンコードでテキストをエンコード・デコードします。
このツールについて
Base32はバイナリテキスト符号化スキームで、生データを32文字のアルファベット(A~Zと2~7)に変換し、テキストベースのシステムでのバイナリ情報の安全な送信を可能にします。より単純なBase64と異なり、Base32は堅牢性と可読性を優先します。その限定的な文字セットは、似たような文字('O'と'0'など)の混同を回避し、異なる文字エンコーディング間で確実に機能します。Base32は、認証システム(二段階認証のTOTPトークン)、DNSゾーンファイル、ファイルネーミングシステム、およびセキュアで曖昧性のないデータ表現が重要なあらゆる場面で特に有用です。
このツールを使用するには、入力フィールドにデータを貼り付けまたは入力し、『エンコード』を選択して生テキストまたはバイナリデータをBase32形式に変換するか、『デコード』を選択してBase32エンコードされたテキストを元の形式に逆変換します。ツールはテキストとバイナリの入力を無差別に処理し、データを自動的に処理して結果を即座に表示します。一般的な用途には、二段階認証コードの生成または検証、URL内への安全なデータ埋め込み、バイナリファイルの保存または送信のための変換、および異なる文字サポートを備えたシステム間での情報移動時のデータ整合性確保が含まれます。
Base32の他の符号化方式に対する利点は、大文字小文字を区別しないことです。両方の大文字と小文字のバージョンが同じようにデコードされ、手動入力での転記エラーが減少します。符号化はデータサイズを約60%拡張します。これはBase64より大きいですが、ほとんどのアプリケーションではまだ管理可能です。認証アプリを使用している場合、エンコードされたデータでQRコードを配布する場合、または曖昧性を最小化する人間親和的な符号化が必要な場合、Base32がしばしば理想的な選択肢です。
よくある質問
コード実装
import base64
# Encode bytes to Base32
data = b"Hello, World!"
encoded = base64.b32encode(data).decode()
print("Encoded:", encoded) # JBSWY3DPEB3W64TMMQ======
# Decode Base32 back to bytes
decoded = base64.b32decode(encoded)
print("Decoded:", decoded.decode()) # Hello, World!
# Base32 for TOTP secret generation
import os
totp_secret = base64.b32encode(os.urandom(20)).decode().rstrip("=")
print("TOTP Secret:", totp_secret) # e.g. JBSWY3DPEB3W64TM
# Decode without padding (common in authenticator apps)
def b32decode_nopad(s: str) -> bytes:
pad = (8 - len(s) % 8) % 8
return base64.b32decode(s.upper() + "=" * pad)Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.