Base32 编码/解码
使用Base32编码对文本进行编码和解码。
关于此工具
Base32是一种二进制到文本的编码方案,将原始数据转换为32字符字母表(A-Z和2-7),使二进制信息能够安全地通过基于文本的系统传输。与更紧凑的Base64不同,Base32优先考虑健壮性和可读性——其有限的字符集避免了类似字母的混淆(如'O'和'0'),并在不同的字符编码中可靠地工作。Base32在认证系统(用于双因素认证的TOTP令牌)、DNS区域文件、文件命名系统以及任何需要安全、明确数据表示的地方特别有价值。
要使用此工具,请在输入字段中粘贴或输入您的数据,然后选择'编码'将原始文本或二进制数据转换为Base32格式,或选择'解码'将Base32编码的文本转换回其原始形式。该工具可无缝处理文本和二进制输入,自动处理数据并即时显示结果。常见用途包括生成或验证双因素身份验证代码、在URL中安全嵌入数据、转换二进制文件以供存储或传输、以及在跨具有不同字符支持的系统移动信息时确保数据完整性。
Base32相对于其他编码方式的一个优势是不区分大小写——大写和小写版本都能相同地解码,减少手动输入时的转录错误。该编码将数据大小扩展约60%,这比Base64更大,但对于大多数应用程序仍是可管理的。如果您正在使用身份验证应用程序、分发包含编码数据的二维码,或需要一种人性化编码以最小化歧义,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.