아자몰 패밀리 사이트 · 개발자도구
홈 › 인코딩·변환 › Base64 인코더·디코더
// encode

Base64 인코더·디코더

텍스트(UTF-8)를 Base64로 바꾸고 되돌립니다. 표준·URL 안전 알파벳, 패딩 선택.

입력한 값은 이 브라우저 안에서만 처리하고 서버로 보내거나 저장하지 않아요. 결과는 참고용입니다.

이렇게 쓰세요

  • 위쪽 선택에서 방향을 고릅니다. 텍스트를 Base64로 바꾸려면 인코딩, 반대로 하려면 디코딩입니다.
  • 알파벳은 표준(+ /) 또는 URL 안전(- _) 중에서 고릅니다. 디코딩할 때는 입력이 쓴 알파벳과 같은 것을 골라야 합니다.
  • 인코딩할 때 패딩(=)을 붙일지 정합니다. 디코딩은 패딩이 없어도 받아들입니다.
  • 텍스트 칸에 내용을 넣으면 곧바로 결과가 나옵니다. 결과 칸의 복사 단추나 [⇄ 결과를 입력으로]로 이어서 변환할 수 있습니다.

표준·URL 안전 알파벳과 패딩

Base64는 3바이트(24비트)를 6비트씩 4덩어리로 나누어 글자 4개로 나타냅니다. 표준 알파벳(RFC 4648 §4)은 62번째·63번째 값에 +와 /를, URL과 파일 이름에 쓰기 위한 변형(§5)은 -와 _를 씁니다.

같은 바이트가 어떻게 달라지는지 보면 이렇습니다. 바이트 FB FF BE는 표준에서 +/++, URL 안전에서 -_--이 됩니다. 이모지 😀(UTF-8로 F0 9F 98 80)는 표준에서 8J+YgA==, URL 안전에서 8J-YgA==입니다. 앞의 값은 6비트 단위로 손으로 풀어 확인했고, 뒤의 값은 파이썬 base64 모듈과 대조했습니다.

패딩은 마지막 덩어리가 모자랄 때 =로 채워 글자 수를 4의 배수로 맞추는 것입니다. RFC 4648 §10의 시험값으로 "f"는 Zg==, "fo"는 Zm8=, "foo"는 Zm9v, "foobar"는 Zm9vYmFy입니다. 이 도구는 인코딩할 때 패딩을 켜고 끌 수 있고, 디코딩할 때는 패딩이 없어도 받습니다. 패딩이 있다면 개수가 맞아야 합니다.

디코딩할 때 어떤 글자를 받고 어떤 글자를 거부하나요

RFC 4648 §3.3은 사양이 따로 허용하지 않는 한 알파벳 밖의 글자가 들어 있으면 디코더가 입력을 거부해야 한다고 규정합니다. 이 도구도 그 방침을 따라 알파벳 밖 글자를 오류(몇 번째 글자인지 표시)로 알려 줍니다.

예외는 공백·탭·CR·LF입니다. 이메일(MIME) 형식은 Base64 한 줄을 76자 이하로 줄바꿈하는데(RFC 2045 §6.8), 그렇게 줄바꿈된 입력을 붙여 넣어도 풀리도록 이 네 가지 글자는 건너뜁니다. 반대로 인코딩 결과에는 줄바꿈을 넣지 않습니다.

한 가지 알아 둘 점은, 마지막 글자에 남는 비트가 0인지 확인하는 엄격한 검사(RFC 4648 §3.5의 정규 인코딩)를 이 도구가 하지 않는다는 것입니다. 형식상 읽을 수 있는 입력은 풀어 줍니다.

한글·일본어·이모지와 결과 크기

이 도구는 입력 텍스트를 UTF-8 바이트로 바꾼 뒤 Base64로 인코딩하고, 디코딩할 때는 바이트를 UTF-8로 읽습니다. 한글 '한국'은 UTF-8로 6바이트이며 Base64로는 7ZWc6rWt, 일본어 '日本'은 5pel5pys입니다(파이썬 base64 모듈과 대조).

Base64는 3바이트를 4글자로 나타내므로 결과는 원래 바이트 수보다 늘어납니다. 한글은 한 글자가 3바이트라서 글자 수보다 훨씬 길어 보일 수 있습니다.

디코딩한 바이트가 올바른 UTF-8이 아니면(이미지나 압축 데이터 등) 글자로 억지로 바꾸지 않고 16진수만 보여 줍니다. UTF-8 이외의 문자 인코딩으로 만든 데이터는 이 도구로 글자로 읽을 수 없습니다. 끝으로 Base64는 암호화가 아니므로, 비밀번호나 키를 Base64로 바꿨다고 해서 보호되는 것은 아닙니다.

자주 묻는 질문

Base64는 암호화인가요?

아닙니다. Base64는 바이트를 64개의 글자로 나타내는 표기 방식일 뿐이어서 누구나 되돌릴 수 있습니다. 비밀을 지키려는 용도로 쓰면 안 됩니다.

표준 Base64와 URL 안전 Base64는 무엇이 다른가요?

62번째와 63번째 글자만 다릅니다. 표준은 + 와 / 를, URL 안전 방식은 - 와 _ 를 씁니다(RFC 4648 §4, §5). 이 도구는 두 변형을 섞어 쓴 입력을 거부합니다.

디코딩하면 '몇 번째 글자' 오류가 납니다.

알파벳에 없는 글자가 있다는 뜻입니다. 공백·탭·줄바꿈은 건너뛰지만 그 밖의 글자는 거부합니다. 표준/URL 안전 선택이 입력과 맞는지, '=' 뒤에 글자가 더 붙지 않았는지 확인해 보세요.

패딩(=)이 없는 Base64도 디코딩되나요?

됩니다. 길이가 맞으면 패딩 없이도 풉니다. 다만 = 가 있으면 개수가 맞아야 하고, 예를 들어 Zg= 처럼 모자라면 오류로 알려 줍니다.

한글을 인코딩하면 왜 결과가 더 길어지나요?

텍스트를 먼저 UTF-8 바이트로 바꾸는데 한글 한 글자는 3바이트이고, Base64는 3바이트를 4글자로 나타내기 때문입니다. 예를 들어 '한국'(6바이트)은 7ZWc6rWt(8글자)가 됩니다.

출처와 기준일

공식 원문을 직접 열어 확인한 날: 2026-11-10. 표준과 규격은 바뀔 수 있으니 중요한 작업 전에는 원문을 다시 확인하세요.

출처와 검증 방법 · 용어 설명 · 출처와 기준