본문으로 건너뛰기
AZ Tools

Base45 인코더 및 디코더

RFC 9285에 따라 텍스트를 Base45로 인코딩하고 Base45를 다시 텍스트로 디코딩합니다. 브라우저에서 동작합니다.

출력

사용법

  1. 인코드(텍스트 → Base45) 또는 디코드(Base45 → 텍스트)를 선택합니다.
  2. 입력을 입력하거나 붙여넣습니다.
  3. 출력 상자에서 변환된 결과를 복사합니다.

자세한 설명

펼치기

텍스트를 Base45로, 또는 그 반대로 변환합니다. Base45는 RFC 9285에 정의된 조밀한 인코딩으로, EU 디지털 코로나 증명서 같은 QR 코드 안에서 쓰입니다. 알파벳은 QR 코드가 영숫자 모드로 저장할 수 있는 45개 문자, 즉 숫자·대문자·공백과 몇 가지 기호로 정확히 이루어져 있습니다. 바로 그것이 요점입니다. 이 문자들은 QR에서 한 글자당 5.5비트만 차지하므로, Base45는 글자 수는 더 많이 만들면서도 Base64보다 작은 심벌에 이진 데이터를 담아냅니다. 두 바이트마다 세 글자가 되고, 끝에 남는 홀수 바이트는 두 글자가 됩니다. 텍스트는 UTF-8로 처리하며, 디코딩할 때 알파벳과 값의 범위를 모두 검사하므로 잘리거나 수정된 페이로드는 조용히 망가지지 않고 오류로 표시됩니다.

자주 묻는 질문

Base45가 무엇인가요?

Base45는 RFC 9285에 정의된 이진-텍스트 인코딩입니다. 2바이트를 45개 기호 알파벳의 3개 문자로 묶으며, QR 코드에 저장하기 효율적입니다.

어디에 사용되나요?

특히 EU 디지털 COVID 인증서와 기타 QR 기반 시스템에서 사용되며, 45개 문자 알파벳이 QR 코드 영숫자 모드에 잘 맞습니다.

비 ASCII 문자는 어떻게 처리되나요?

텍스트가 먼저 UTF-8로 인코딩되므로 악센트 문자, 이모지, CJK 문자가 바이트 시퀀스가 되고 정확히 다시 디코딩됩니다.

잘못된 Base45는 어떻게 되나요?

디코딩은 모든 문자가 알파벳에 있는지, 각 그룹의 길이와 값이 유효한지 확인합니다. 잘못된 입력은 깨진 출력 대신 오류를 표시합니다.

Base45 출력이 Base64보다 긴데 왜 QR 코드에 쓰나요?

글자 수는 잘못된 척도이기 때문입니다. Base45는 2바이트를 3글자로 바꿔 항상 1.5배가 되고, Base64는 약 1.36배입니다. 하지만 Base45의 알파벳은 QR의 영숫자 모드 집합과 정확히 같고, 이 모드는 두 글자를 11비트에 담아 글자당 5.5비트입니다. Base64는 소문자가 필요해 바이트 모드를 쓸 수밖에 없고 글자당 8비트입니다. 100바이트라면 QR 페이로드가 825비트 대 1,088비트로 약 24% 적고, 이 차이로 심볼 크기 등급이 통째로 하나 줄어드는 경우가 많습니다.

Base45 문자열을 URL이나 셸 명령에 그대로 넣어도 되나요?

따옴표 없이는 안 됩니다. 알파벳의 마지막 아홉 글자는 공백, $, %, *, +, -, ., /, : 입니다. 그래서 Base45 문자열에는 실제 공백이 흔히 들어가고, URL 디코딩이 이스케이프로 읽는 퍼센트 기호와 폼 디코딩이 공백으로 바꾸는 플러스 기호도 들어갑니다. 대문자 전용이라 전송 중에 소문자로 바뀌면 그대로 망가집니다. Base45는 QR 심볼 내부를 위한 설계이지 쿼리 파라미터용이 아닙니다. URL로 보내야 한다면 퍼센트 인코딩을 하거나 Base64url을 쓰세요.

관련 도구