> encode | decode | safe <
// 사람이 읽기 쉬운 비모호한 Base32 인코딩
쉽게 사용
Base32 인코딩/디코딩을 즉시 수행하는 간단한 인터페이스.
로컬 처리
모든 변환은 브라우저에서 수행됩니다. 데이터는 기기를 떠나지 않습니다.
사람 친화적
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 키, 사용자 식별자 등).
왜 모든 숫자/문자를 쓰지 않나요?
0, 1, O, I는 서로 비슷해 혼동을 일으키므로 제외됩니다.
등호(=)는 무슨 의미인가요?
패딩 문자로, 길이를 8의 배수로 맞춰 올바른 디코딩을 보장합니다.
// 빠른 참조
| 입력 | Base32 | Base64 |
|---|---|---|
| f | MY====== | Zg== |
| fo | MZXQ==== | Zm8= |
| foo | MZXW6=== | Zm9v |
| foob | MZXW6YQ= | Zm9vYg== |
| fooba | MZXW6YTB | Zm9vYmE= |
| foobar | MZXW6YTBOI====== | 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: 셋 모두 RFC 4648에 정의되어 있으며 문자당 비트 수만 다릅니다. 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 onion 주소(56자), 일부 파일 시스템이나 DNS 레이블처럼 대소문자를 구분하지 않는 시스템의 식별자에 쓰입니다.