Base32 인코더 및 디코더
Base32는 바이너리 데이터를 32개의 문자로 표현합니다. 읽기 오류를 줄이기 위해 0/O나 1/I 없이 숫자 2-7과 26개의 대문자를 사용합니다. 그래서 사람이 입력하거나 소리 내어 읽어야 하는 것에 이상적입니다. 2단계 인증의 TOTP 시크릿, 바우처 코드, 대소문자를 구분하지 않는 식별자 같은 경우입니다. 이 도구는 바이너리나 텍스트를 Base32로 인코딩하고 다시 디코딩하며, 선택적 패딩을 포함해 RFC 4648을 따릅니다.
Base32를 인코딩하거나 디코딩하는 방법
-
1
텍스트 붙여넣기 또는 파일 업로드
입력은 바이트로 처리됩니다. 텍스트 입력의 기본 해석은 UTF-8입니다.
-
2
방향 선택
인코딩은 원시 바이트를 Base32 문자열로 바꾸고, 디코딩은 바이트를 복원합니다.
-
3
패딩 설정
RFC 4648은 길이가 8의 배수가 되도록 `=` 패딩을 지정합니다. TOTP 시크릿과 짧은 토큰에는 끌 수 있습니다.
-
4
결과 복사
인코딩 결과는 설정에 따라 대문자이며 패딩이 있거나 없게 출력됩니다.
RFC 4648 알파벳
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2 3 4 5 6 7
0도 없고, 1도 없고, 8도 없고, 9도 없습니다. 각 문자는 5비트(2^5 = 32)를 인코딩하므로 입력 5바이트가 출력 8문자가 됩니다.
풀이 예시
ASCII 문자열 foo(바이트 0x66 0x6F 0x6F = 01100110 01101111 01101111)를 인코딩하면:
- 5비트 그룹으로 나눔:
01100 11001 10111 10110 1111(마지막 그룹은 패딩) - 알파벳에 대응:
MZXW6 - 8문자에 맞추기 위해
===패딩 추가:MZXW6===
패딩과 길이 규칙
| 입력 바이트 수 | 출력 문자 수 | 패딩 |
|---|---|---|
| 1 | 8 | ====== |
| 2 | 8 | ==== |
| 3 | 8 | === |
| 4 | 8 | = |
| 5 | 8 | (없음) |
RFC 4648 외의 변형
- Base32 Hex — 알파벳
0-9A-V, DNSSEC의 NSEC3에서 사용됩니다. - Crockford’s Base32 — 사람의 입력에 최적화된 알파벳입니다. 디코딩 시
O→0,I/L→1로 치환합니다. ULID와 일부 라이선스 키에서 사용됩니다.
이 도구의 기본값은 표준 RFC 4648입니다.
TOTP 시크릿
Google Authenticator와 모든 최신 2FA 앱이 사용하는 otpauth:// URI 형식은 공유 시크릿을 패딩 없는 Base32로 인코딩합니다. “My Service”용 QR 코드를 스캔하면 secret= 파라미터가 Base32 문자열입니다. 이 도구로 디코딩하면 HMAC이 사용하는 원시 바이트를 확인할 수 있습니다.
자주 묻는 질문
Base32는 대소문자를 구분하지 않고 헷갈리는 문자를 피합니다. 사람이 읽거나 입력하는 모든 것에 중요합니다. Base64는 더 조밀해서 같은 바이트에 더 적은 문자가 필요하지만, I와 l, 0과 O를 구분해야 하므로 손글씨와 작은 인쇄에서 실패하기 쉽습니다.
RFC 4648은 필수라고 하지만, 대부분의 실제 사용처(TOTP 앱, ULID 라이브러리, DNSSEC 리졸버)는 패딩 없는 입력을 받습니다. 이 도구는 선택할 수 있으며, 어느 형식을 붙여넣어도 디코딩이 작동해야 합니다.
표준 Base32에는 0, 1, 8, 9가 없고 항상 대문자입니다. 입력에 그런 문자가 있다면 RFC 4648이 아니라 Crockford 변형이나 base32hex일 수 있습니다. 입력을 정리하거나 올바른 변형을 선택하세요.
아니요. 인코딩과 디코딩은 브라우저에서 이루어집니다. 입력도 결과도 사용자의 기기를 떠나지 않습니다.
관련 도구
A1Z26 암호 인코더
A1Z26 암호(A=1, B=2, ... Z=26)로 텍스트를 인코딩하거나 숫자열을 다시 글자로 디코딩합니다. 구분자도 사용자 지정할 수 있습니다.
AES 암호화 / 복호화
OpenSSL의 AES cipher로 낮은 위험의 텍스트를 암호화하고 복호화합니다. passphrase는 SHA-256으로 해시되며 Base64 출력은 IV와 암호문을 담습니다.
Atbash 암호 인코더
A-Z를 Z-A로 매핑하는 히브리식 치환 암호 Atbash로 텍스트를 인코딩하거나 디코딩합니다. 같은 연산으로 암호화와 복호화를 모두 처리합니다.
bcrypt 생성기
plaintext password에서 bcrypt hash를 생성합니다. cost factor 4부터 14까지 조정 가능하며 Laravel, Django, Node, PHP와 호환됩니다.
Base85 인코더 및 디코더
Adobe Ascii85(PostScript/PDF) 또는 Z85(ZeroMQ) 방식으로 Base85를 인코딩하고 디코딩하세요. 이진 데이터에서는 Base64보다 더 작습니다.
bcrypt 해시 생성기
bcrypt 해시를 생성하거나 평문 비밀번호를 기존 bcrypt 해시와 대조해 검증합니다. 생성과 검증을 한 도구에서 나란히 제공합니다.