파일 업로드
  1. base64hub
  2. 기타 진법
  3. Base32 → Base64

Base32를 Base64로 변환하는 온라인 도구

2FA 앱의 설정 키 같은 Base32 문자열을 붙여넣으면 같은 바이트를 표준 Base64로 받을 수 있습니다. 묶인 입력, 소문자, 패딩 없는 입력도 있는 그대로 받습니다.

무료 가입 없음, 제한 없음 로컬 업로드 없음 대소문자 무관 공백과 패딩 누락도 가능 업데이트 2026. 10. 27.
입력 0바이트 0 B출력 0

브라우저에서 처리됩니다. 이 페이지는 데이터를 어디로도 보낼 수 없습니다 – 확인 방법

Base32를 Base64로 변환하는 방법

  1. 입력 · Base32 (RFC 4648) 에 Base32를 붙여넣으세요. 묶음 사이의 공백, 소문자, 빠진 =도 모두 괜찮습니다.
  2. 출력 · Base64에서 Base64를 읽으세요. 받는 쪽이 =를 원하지 않으면 출력 아래의 패딩 (=) 체크를 해제하고, 긴 값이라면 줄 바꿈을 설정하세요.
  3. 출력 복사를 누르세요. 방향 전환의 Base64 → Base32 (RFC 4648) 나 Base64를 Base32로에서 반대로 변환할 수 있습니다.

예시

Base32Base64비고
JBSWY3DPEHPK3PXPSGVsbG8h3q2+7w==Google Authenticator 키 URI 문서의 예시 키, 10바이트
jbsw y3dp ehpk 3pxpSGVsbG8h3q2+7w==같은 키를 앱이 표시하는 묶음 형태로
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQMTIzNDU2Nzg5MDEyMzQ1Njc4OTA=RFC 6238 테스트 시크릿, ASCII 숫자 20개
RBGA56K5GUXFZY3PQMYQKS3ACLQI2W6KiEwO+V01Llzjb4MxBUtgEuCNW8o=무작위처럼 보이는 20바이트
MZXW6YQZm9vYg==패딩 없는 입력. 패딩을 붙이면 MZXW6YQ=

첫 번째 키는 바이트 48 65 6c 6c 6f 21 de ad be ef로 디코딩됩니다. 단어 Hello! 뒤에 de ad be ef가 붙은 것입니다. 그래서 이 키의 Base64는 Hello!의 Base64인 SGVsbG8h로 시작합니다.

2FA 시크릿을 Base64로 바꾸는 이유

Base32 형태는 사람을 위한 것입니다. QR 코드와 설정 화면에 들어가고, 휴대폰에서 직접 입력할 수 있습니다. 코드와 설정은 보통 원시 키를 원하고, Base64는 JSON, YAML, 환경 변수, 데이터베이스에 원시 바이트를 저장하는 흔한 방법입니다. 대표적인 경우는 다음과 같습니다.

  • 내보낸 otpauth:// 링크 목록의 TOTP 계정을 시크릿을 Base64로 저장하는 시스템으로 옮길 때.
  • 자체 서버에서 코드를 검증하는 경우처럼, Base64나 바이트를 받는 HMAC 함수나 라이브러리에 키를 넘길 때.
  • 시크릿 사본 두 개를 비교할 때. 같은 Base32를 다르게 묶거나, 대소문자나 패딩이 달라도 Base64 문자열은 하나이므로 출력이 같으면 키도 같습니다.

Base64로 된 시크릿은 Base32 시크릿과 똑같이 민감하므로 비밀번호를 보관할 곳에 보관하세요.

Python에서 Base32를 Base64로

Python의 b32decode는 대소문자와 패딩에 엄격하므로 먼저 문자열을 정규화하세요.

import base64

def b32_to_b64(secret):
    s = secret.replace(" ", "").upper()
    s += "=" * (-len(s) % 8)
    return base64.b64encode(base64.b32decode(s)).decode()

b32_to_b64("jbsw y3dp ehpk 3pxp")    # 'SGVsbG8h3q2+7w=='

.upper() 호출이 없으면 Python은 binascii.Error: Non-base32 digit found를, 패딩 줄이 없으면 Incorrect padding을 냅니다. Base64 쪽은 Python에서 Base64를 참고하세요.

자주 겪는 문제

  • 9, 8, 1, 0에서 오류가 납니다. 이 숫자들은 RFC 4648 Base32에 없습니다. 값이 base32hex나 Crockford일 가능성이 높습니다. 예를 들어 91IMOR3F는 여기서 위치 1에서 실패합니다. Base32 디코더에서 올바른 변환 전 알파벳으로 디코딩하세요.
  • -에서 오류가 납니다. 일부 사이트는 키를 하이픈으로 나눠 보여 줍니다. 하이픈을 지우세요. 건너뛰는 것은 공백뿐입니다.
  • Base64는 맞는데 서버가 코드를 거부합니다. 다른 파라미터를 확인하세요. 알고리즘, 자릿수, 주기가 양쪽에서 같아야 하고, 서버 시계가 휴대폰 시계와 비슷해야 합니다.

자주 묻는 질문

Google Authenticator 키를 Base64로 바꾸려면 어떻게 하나요?

otpauth:// 링크의 secret= 파라미터에서 키를 가져오거나(QR 코드 아래에 표시되는 텍스트 키도 됩니다) 여기에 붙여넣으세요. JBSWY3DPEHPK3PXP는 SGVsbG8h3q2+7w==가 됩니다.

왜 Base64가 Base32보다 짧은가요?

Base64는 문자당 6비트, Base32는 5비트를 담으므로 같은 바이트에 Base64 문자가 더 적게 필요합니다. 20바이트는 Base32로 32자지만 Base64로는 28자입니다.

base32hex나 Crockford Base32도 여기서 변환할 수 있나요?

이 페이지는 RFC 4648 Base32만 읽습니다. Base32 디코더를 열고 변환 전을 Base32hex나 Crockford Base32로, 변환 후를 Base64로 설정하세요.

명령줄에서 Base32를 Base64로 바꾸려면 어떻게 하나요?

GNU coreutils로 printf 'JBSWY3DPEHPK3PXP' | base32 -d | base64를 실행하세요. 입력은 공백 없는 대문자여야 하며, tr -d ' ' | tr a-z A-Z로 먼저 정리할 수 있습니다.