Base32 인코더 / 디코더
Base32 인코딩으로 텍스트를 인코딩·디코딩합니다.
이 도구 소개
Base32는 바이너리를 텍스트로 변환하는 인코딩 방식으로, 원본 데이터를 32개 문자(A~Z와 2~7)의 알파벳으로 변환하여 텍스트 기반 시스템을 통해 이진 정보를 안전하게 전송할 수 있게 합니다. 더 간단한 Base64와 달리 Base32는 견고성과 가독성을 우선시합니다. 제한된 문자 집합은 유사한 문자(예: 'O'와 '0')의 혼동을 피하고 서로 다른 문자 인코딩 간에 안정적으로 작동합니다. Base32는 인증 시스템(2단계 인증용 TOTP 토큰), DNS 영역 파일, 파일 이름 지정 시스템, 그리고 보안적이고 명확한 데이터 표현이 중요한 모든 곳에서 특히 유용합니다.
이 도구를 사용하려면 입력 필드에 데이터를 붙여넣거나 입력한 후, '인코드'를 선택하여 원본 텍스트나 바이너리 데이터를 Base32 형식으로 변환하거나, '디코드'를 선택하여 Base32로 인코딩된 텍스트를 원래 형식으로 복원합니다. 도구는 텍스트와 바이너리 입력을 모두 처리하고 데이터를 자동으로 처리한 후 즉시 결과를 표시합니다. 일반적인 용도로는 2단계 인증 코드 생성 또는 검증, 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.