Base32 인코더 / 디코더
디코딩된 텍스트
인코딩된 Base32
기술적 세부 정보
Base32 인코더/디코더의 작동 방식
도구가 하는 일
Base32 인코더/디코더는 데이터를 Base32 형식으로 변환하고(Base32로 인코딩) 다시 원래 데이터로 되돌립니다(Base32 디코딩). Base32는 32개의 출력 가능한 ASCII 문자(A–Z 및 2–7)를 사용하는 바이너리-텍스트 인코딩 방식입니다. 사람에게 읽기 쉽고 대소문자를 구분하지 않도록 설계되어, 소문자를 사용할 수 없는 환경이나 사람이 인코딩된 문자열을 직접 옮겨 적어야 하는 상황에 적합합니다. 일반적인 사용 사례로는 2단계 인증 앱의 TOTP 비밀 키와 대소문자를 구분하지 않는 시스템에서의 파일 시스템 경로 등이 있습니다.
개발자들이 흔히 사용하는 사례
개발자는 Google Authenticator 같은 인증 앱과 호환되는 OTP/TOTP 비밀 키를 생성할 때, URL과 파일 이름에서 안전하게 사용할 수 있는 간결한 식별자를 만들 때, 임의의 바이트 값을 처리할 수 없는 시스템을 위해 바이너리 데이터를 인코딩할 때 Base32 인코딩을 사용합니다. 디코딩은 OTP 비밀 값에서 원시 바이트를 추출하거나, 서드파티 서비스로부터 받은 Base32 인코딩 페이로드를 검증할 때 흔히 필요합니다.
데이터 형식, 타입 또는 변형
표준 Base32(RFC 4648)는 알파벳 A–Z와 2–7을 사용하며, 출력이 8자의 배수가 되도록 = 패딩을 추가합니다. Base32hex는 자연스러운 정렬 순서를 위해 알파벳 0–9와 A–V를 사용합니다. 인코딩된 출력은 원본 입력보다 대략 60% 더 큽니다. TOTP 시크릿 같은 맥락에서는 패딩을 생략하기도 합니다. 이 도구는 디코딩 시 표준 변형과 패딩이 있는 변형을 모두 처리합니다.
흔한 함정과 엣지 케이스
Base32는 대소문자를 구분하지 않으므로, 디코더는 처리 전에 입력을 대문자로 정규화해야 합니다. 잘못된 문자(A–Z 및 2–7 밖의 모든 것)는 디코딩 오류를 유발합니다. Base32를 Base32hex와 혼동하지 마세요 — 서로 다른 알파벳을 사용하며 다른 출력을 생성합니다. 사양에서 요구하는 경우 패딩 문자가 반드시 있어야 합니다. 일부 구현은 누락된 패딩을 조용히 허용하지만, 다른 구현은 실패합니다.
코드 대신 이 도구를 사용해야 하는 경우
특히 TOTP 시크릿을 다루거나 개발 중 인코딩된 페이로드를 검사할 때, 빠른 Base32 인코딩/디코딩을 위해 이 브라우저 도구를 사용하세요. 프로덕션 애플리케이션에서는 base32(Python), hi-base32(JavaScript), Apache Commons Codec(Java) 같은 언어 네이티브 라이브러리를 사용해 인코딩이 재현 가능하고, 테스트되어 있으며, 빌드 파이프라인에 통합되도록 하세요.