Base64 인코딩·디코딩
Base64 인코딩과 디코딩을 무료로 변환하세요. 텍스트 변환, 이미지→Base64(Data URI), URL-safe 모드까지 브라우저에서 바로 처리됩니다. 회원가입 없이, 서버 전송 없이 안전하게.
다음 계산
이어서 많이 찾는 계산
이용 방법
텍스트 인코딩, base64 디코딩, 파일→Base64, Base64→이미지 중 원하는 탭을 고르세요.
텍스트를 입력하거나 10MB 이하 파일을 끌어다 놓으세요. 한글은 UTF-8로 안전하게 변환됩니다.
자동 생성된 결과를 확인하고 '복사하기'를 누르세요. 디코딩 탭에서는 먼저 '디코딩하기'를 누르세요.
Base64(베이스64)는 이진 데이터를 64개 ASCII 문자로 바꾸는 인코딩 방식입니다. 3바이트를 4문자로 변환하며 용량은 약 33% 늘어납니다.
| 문자 | 인덱스 | 비고 |
|---|---|---|
| A–Z | 0–25 | 대문자 26자 |
| a–z | 26–51 | 소문자 26자 |
| 0–9 | 52–61 | 숫자 10자 |
| + | 62 | URL-safe에서는 - |
| / | 63 | URL-safe에서는 _ |
| = | 패딩 | 출력 길이를 4의 배수로 맞춤 |
| 문자 | ASCII | 이진(8비트) | 6비트 그룹 | 인덱스 | Base64 |
|---|---|---|---|---|---|
| M | 77 | 01001101 | 010011 | 19 | T |
| a | 97 | 01100001 | 010110 | 22 | W |
| n | 110 | 01101110 | 000101 | 5 | F |
| — | — | — | 110110 | 54 | u |
| 구분 | 표준 Base64 | Base64URL |
|---|---|---|
| 문자 + | + | - |
| 문자 / | / | _ |
| 패딩 = | 유지 | 생략 (정상) |
| 주로 쓰는 곳 | 이메일(MIME)·데이터 저장 | URL·JWT 토큰·파일명 |
심화 가이드
한글이 깨진다면: 원인 → 해결
원인은 대부분 문자셋입니다. Base64는 바이트 단위로 동작하므로, 한글을 변환할 때는 먼저 UTF-8 바이트로 바꾸는 과정이 필요합니다. 브라우저의 btoa()/atob() 함수는 ASCII 문자만 처리해서 한글을 직접 넣으면 깨지거나 오류가 납니다. 이 도구는 TextEncoder/TextDecoder로 UTF-8 변환을 자동으로 처리하므로 한글이 안전합니다. 구형 시스템에서 받은 데이터가 깨진다면 EUC-KR 등 원래 문자셋을 확인해 보세요. 인코딩 전 바이트 수를 미리 확인하고 싶다면 글자수 세기 도구를 이용해 보세요.
패딩(=) 규칙 한눈에 보기
Base64 출력 길이는 항상 4의 배수여야 합니다. 원본 데이터 길이를 3으로 나눈 나머지가 1이면 ==, 2이면 =이 붙고, 나머지가 0이면 패딩이 없습니다. 예를 들어 M은 TQ==, Ma는 TWE=, Man은 TWFu가 됩니다. 디코딩할 때 길이가 4의 배수가 아니거나 패딩이 빠지면 오류가 나니, 입력 문자열의 끝을 먼저 확인하세요. URL-safe(Base64URL) 형식에서는 패딩을 생략하는 것이 정상이므로, 패딩이 없어도 당황하지 마세요.
주의: Base64는 암호화가 아닙니다
Base64는 누구나 디코딩할 수 있는 인코딩 방식이라서, 비밀번호나 개인정보를 "보호"하는 용도로 사용하면 안 됩니다. 토큰·API 키를 디버깅할 때는 편리하지만, 민감한 값을 숨기는 효과는 없습니다. 실제로 데이터를 암호화해야 한다면 AES 같은 암호화 방식을 사용하세요.
이미지 Data URI로 활용하기
이미지를 Base64로 바꾸면 data:image/png;base64,... 형태의 Data URI가 됩니다. 이 문자열을 <img> 태그의 src, CSS의 background-image, 마크다운 이미지 문법에 바로 붙여넣어 사용할 수 있습니다. 이 페이지의 "파일 → Base64" 탭에서 Data URI 출력을 선택하고, "Base64 → 이미지" 탭에서 붙여넣기 전에 미리보기로 확인할 수 있습니다. 단, 인코딩하면 용량이 약 33% 늘어나므로 작은 아이콘·로고처럼 자주 쓰는 작은 이미지에 적합합니다.
개발 실무에서 Base64를 쓰는 경우
Base64는 개발 현장에서 생각보다 자주 등장합니다. 첫째, API 통신입니다. 이미지나 파일을 JSON으로 주고받을 때 바이너리를 텍스트로 바꿔 담는 용도로 쓰입니다. JSON은 바이너리를 직접 담을 수 없으므로 이런 변환이 필수적입니다. 둘째, 인증 토큰입니다. JWT의 헤더와 페이로드는 Base64URL로 인코딩되어 있어, 디코딩하면 토큰 내용을 바로 확인할 수 있습니다. 다만 서명 검증 없이는 위변조 여부를 알 수 없으니 주의하세요. 토큰 디버깅할 때 이 도구에 붙여넣으면 페이로드의 사용자 정보나 만료 시각을 바로 읽을 수 있습니다. 셋째, 설정 파일입니다. 인증서나 키 파일을 환경 변수에 넣을 때 줄바꿈 문제를 피하려고 Base64로 감싸는 경우가 많습니다. 도커나 클라우드 배포 환경에서 자주 쓰는 패턴입니다. 넷째, 데이터 URI입니다. 작은 이미지를 HTML이나 CSS에 직접 삽입할 때 사용합니다. HTTP 요청을 줄일 수 있어 아이콘이 많은 페이지에서 유용합니다. 공통 주의사항은 용량입니다. 인코딩하면 원본보다 약 33% 커지므로, 큰 파일에는 부적합합니다. 큰 이미지라면 이미지 용량 줄이기로 먼저 줄인 뒤 인코딩하는 것을 권장합니다.
한글이 포함된 문자열 안전하게 주고받기
한글을 Base64로 주고받을 때 가장 흔한 실수는 인코딩 단계의 불일치입니다. Base64 자체는 바이트를 다루므로, 한글 문자열에서 바이트로 변환하는 과정에서 UTF-8을 썼는지 EUC-KR을 썼는지가 결과를 좌우합니다. 보내는 쪽이 UTF-8로 인코딩했는데 받는 쪽이 EUC-KR로 디코딩하면 글자가 깨집니다. 해결책은 양쪽의 인코딩을 UTF-8로 통일하는 것입니다. 요즘 대부분의 시스템이 UTF-8을 기본으로 쓰므로, 특별한 이유가 없다면 UTF-8을 선택하세요. 레거시 시스템과 연동할 때만 EUC-KR을 고려하면 됩니다. URL에 Base64 문자열을 넣을 때는 한 가지가 더 있습니다. 표준 Base64의 더하기, 슬래시, 등호 문자는 URL에서 특수한 의미를 가지므로, URL 인코딩으로 감싸거나 Base64URL 방식으로 변환해야 합니다. 특히 GET 파라미터로 전달할 때는 이 변환을 빼먹으면 서버에서 값을 다르게 해석합니다. 디버깅할 때는 이 도구로 디코딩한 결과가 예상한 문자열과 일치하는지 먼저 확인하고, 그다음 단계로 넘어가세요. 단계별로 확인하면 문제 지점을 빨리 찾을 수 있습니다. 인코딩 설정은 문서화해 두면 다음에 같은 문제를 겪지 않습니다.
Base64URL과 패딩 처리 실전 정리
URL이나 파일 이름에 Base64를 쓸 때는 Base64URL 변환이 필요합니다. 변환 규칙은 단순합니다. 더하기는 하이픈으로, 슬래시는 언더스코어로 바꾸고, 끝에 붙는 등호 패딩은 제거합니다. 디코딩할 때는 역으로 변환한 뒤, 문자열 길이가 4의 배수가 되도록 등호를 다시 붙이면 됩니다. 많은 JWT 라이브러리가 이 방식을 쓰므로, 토큰을 다룰 일이 있다면 익혀 두는 것이 좋습니다. 패딩에 대해 헷갈리는 경우가 많은데, 패딩은 원본 바이트 길이를 3으로 나눈 나머지를 표시하는 역할입니다. 나머지가 1이면 등호 두 개, 2이면 등호 한 개가 붙고, 나머지가 0이면 패딩이 없습니다. 디코딩할 때 패딩이 없어도 길이를 보고 복원할 수 있어, Base64URL에서는 생략하는 것이 관례입니다. 이 도구에서 인코딩한 뒤 URL에 넣을 일이 생기면 URL 인코딩과 함께 쓰는 것을 기억하세요. 두 도구를 조합하면 API 테스트나 웹훅 디버깅이 한결 수월해집니다. 변환 규칙을 메모장에 정리해 두면 필요할 때 바로 참고할 수 있습니다.
자주 묻는 질문
Base64 인코딩이란 무엇인가요?
디코딩했는데 한글이 깨져서 나옵니다. 왜 그런가요?
끝에 붙는 =(패딩)은 무엇인가요? 꼭 필요한가요?
Base64와 Base64URL(URL-safe)은 무엇이 다른가요?
Base64로 인코딩하면 용량이 얼마나 늘어나나요?
이미지를 Base64로 바꾸면 미리보기로 확인할 수 있나요?
Base64 디코딩은 복호화인가요? 안전한가요?
URL에 Base64를 그대로 넣어도 되나요?
큰 파일을 인코딩하면 어떻게 되나요?
디코딩이 실패하는 흔한 원인은?
관련 도구
정규식 테스터
텍스트정규식 패턴을 입력 즉시 테스트하고 매치·그룹·치환 결과를 바로 확인하는 무료 온라인 도구입니다.
URL 인코딩·디코딩
텍스트URL 인코딩과 디코딩을 무료로 변환하세요. encodeURI·encodeURIComponent 차이 설명과 줄 단위 일괄처리까지 브라우저에서 바로 처리됩니다.
HEX 색상코드 변환
텍스트HEX 색상코드를 RGB·HSL로 변환하세요. 실시간 색상 미리보기와 3자리 HEX 지원, 형식별 복사 버튼까지 브라우저에서 바로 처리됩니다.
타임스탬프 변환기
텍스트유닉스 타임스탬프를 날짜로, 날짜를 타임스탬프로 변환하세요. 초·밀리초 자동 판별, 한국 표준시(KST) 기본 지원, 현재 시각 버튼까지.
내 IP 확인
텍스트현재 접속에 사용 중인 공인 IP 주소를 바로 확인하세요. 원클릭 복사, IPv4·IPv6 구분 표시.
자소서 글자수 계산기
텍스트자소서 기준(한글 2바이트)으로 글자수와 바이트를 셉니다.