Base64 인코더/디코더
텍스트와 파일을 Base64로 즉시 인코딩/디코딩하세요.
한글 완벽 지원, URL-safe 변환, 이미지 미리보기까지 한 곳에서 처리할 수 있습니다.
Base64 인코더/디코더 활용 가이드
웹 개발
- 이미지를 Data URI로 인라인 삽입
- CSS background-image에 Base64 활용
- API Basic Auth 헤더 생성
데이터 처리
- API 응답 Base64 데이터 디코딩
- JWT 토큰 페이로드 확인
- 바이너리 데이터 텍스트 전송
보안/IT
- 인증 정보 인코딩/디코딩
- SSL 인증서(PEM) 내용 확인
- 인코딩된 로그 데이터 분석
활용 팁
Base64는 원본 대비 약 33% 크기가 증가합니다. 큰 파일은 별도 서버에 저장하고, 작은 아이콘이나 로고를 인라인으로 사용하세요.
URL 파라미터나 파일명에 Base64를 사용할 때는 URL-safe 모드를 켜세요. +와 /가 -와 _로 변환되어 URL에서 안전하게 사용할 수 있습니다.
작은 이미지를 Data URI로 변환하면 별도의 HTTP 요청 없이 HTML/CSS에 직접 삽입할 수 있어 페이지 로딩 속도가 향상됩니다.
Base64는 암호화가 아닌 단순 인코딩입니다. 비밀번호나 민감한 정보를 Base64로만 인코딩하여 저장하지 마세요.
Base64 인코더/디코더란 무엇인가요?
Base64 인코더/디코더는 텍스트, 이미지, 파일 등의 데이터를 Base64 형식으로 인코딩하거나,
Base64로 인코딩된 데이터를 원본으로 복원하는 온라인 변환 도구입니다.
Base64는 바이너리 데이터를 ASCII 텍스트 문자열로 안전하게 표현하기 위한 인코딩 방식으로,
웹 개발, API 통신, 이메일 전송 등 다양한 분야에서 널리 사용됩니다.
모와툴의 Base64 인코더/디코더는 텍스트 변환은 물론,
파일 인코딩, 이미지 미리보기, Data URI 생성, URL-safe 모드까지 지원합니다.
모든 처리는 브라우저 내에서 수행되어 서버로 데이터가 전송되지 않으므로 보안에 안전합니다.
이런 분들에게 유용합니다
- • API 인증 헤더(Basic Auth)를 생성하는 백엔드 개발자
- • 이미지를 Data URI로 변환하여 CSS/HTML에 인라인 삽입하는 프론트엔드 개발자
- • JWT 토큰의 페이로드를 확인하는 보안 엔지니어
- • 이메일 템플릿에 이미지를 인라인으로 삽입하는 마케터
- • API 응답의 Base64 인코딩된 데이터를 확인하는 QA 엔지니어
- • Base64 인코딩 원리를 학습하는 컴퓨터공학 학생
- • SSL 인증서(PEM) 내용을 확인하는 서버 관리자
Base64 인코딩의 원리
Base64란?
Base64는 8비트 바이너리 데이터를 6비트 단위로 분할하여,
64개의 인쇄 가능한 ASCII 문자(A-Z, a-z, 0-9, +, /)로 변환하는 인코딩 방식입니다.
RFC 4648 표준에 정의되어 있으며, 데이터 전송 시 바이너리 데이터를 텍스트로 안전하게 표현할 때 사용됩니다.
인코딩 과정
- 입력 데이터를 바이트(8비트) 단위로 읽습니다.
- 3바이트(24비트)를 4개의 6비트 그룹으로 분할합니다.
- 각 6비트 값을 Base64 문자표에서 해당하는 문자로 변환합니다.
- 입력이 3의 배수가 아닌 경우 패딩 문자(=)를 추가합니다.
이 과정으로 인해 원본 데이터 대비 약 33.3%의 크기 증가(오버헤드)가 발생합니다.
예를 들어, 3바이트 원본 데이터는 4개의 Base64 문자로 표현됩니다.
Base64 문자표
Base64는 총 64개의 문자와 1개의 패딩 문자를 사용합니다.
값 0-25: 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
값 26-51: 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
값 52-61: 0 1 2 3 4 5 6 7 8 9
값 62-63: + /
패딩: =
URL-safe Base64
표준 Base64의 +와 / 문자는 URL에서 특별한 의미를 가지므로,
URL 파라미터나 파일명에 사용할 때 문제가 발생할 수 있습니다.
URL-safe Base64는 이 문제를 해결하기 위해 다음과 같이 문자를 치환합니다.
| 표준 Base64 | URL-safe Base64 | 이유 |
|---|---|---|
| + | - | URL에서 공백으로 해석 |
| / | _ | URL 경로 구분자로 해석 |
| = | (제거) | URL 파라미터 구분자로 해석 |
주요 기능
1. 텍스트 인코딩/디코딩
텍스트를 입력하면 실시간으로 Base64 인코딩/디코딩 결과를 확인할 수 있습니다.
한글, 이모지, 특수문자 등 모든 유니코드 문자를 UTF-8 기반으로 정확하게 처리합니다.
- • 실시간 변환: 입력 즉시 결과가 표시됩니다.
- • 한글 완벽 지원: UTF-8 인코딩으로 한글이 깨지지 않습니다.
- • 입출력 전환: 버튼 하나로 인코딩 ↔ 디코딩 모드를 전환합니다.
- • 통계 표시: 입출력 바이트 수, 문자 수, 오버헤드 비율을 확인합니다.
2. 파일 인코딩/디코딩
이미지, 문서, 바이너리 파일 등 모든 형식의 파일을 Base64 문자열로 변환하거나,
Base64 문자열을 원본 파일로 복원하여 다운로드할 수 있습니다.
- • 드래그&드롭: 파일을 화면으로 끌어다 놓으면 바로 변환됩니다.
- • Data URI 생성: data:image/png;base64,... 형식을 자동 생성합니다.
- • 파일 복원: Base64 데이터를 입력하면 원본 파일로 다운로드할 수 있습니다.
- • 파일 정보: 원본 크기, Base64 크기, 오버헤드 비율, MIME 타입을 표시합니다.
3. 이미지 미리보기
Base64로 인코딩된 이미지 데이터를 실시간으로 미리볼 수 있습니다.
Data URI 또는 순수 Base64 문자열을 입력하면 이미지가 표시됩니다.
- • 자동 MIME 감지: 파일 시그니처로 이미지 타입을 자동 판별합니다.
- • 이미지 정보: 가로×세로 픽셀 크기, 파일 크기를 표시합니다.
- • HTML img 태그: 복사해서 바로 사용할 수 있는 img 태그를 생성합니다.
- • CSS 배경: background-image: url('data:...') 코드를 생성합니다.
4. 히스토리 관리
최근 변환 기록을 자동으로 저장하여 이전 작업을 쉽게 다시 사용할 수 있습니다.
- • 자동 저장: 최근 10개 변환 기록이 로컬에 저장됩니다.
- • 입출력 복사: 이전 변환의 입력값이나 출력값을 바로 복사할 수 있습니다.
- • 다시 사용: 이전 텍스트 변환을 클릭 한 번으로 복원할 수 있습니다.
- • 변환 유형: 텍스트/파일, 인코딩/디코딩 유형이 구분되어 표시됩니다.
사용 방법
1단계: 변환 모드 선택
인코딩(텍스트→Base64) 또는 디코딩(Base64→텍스트) 모드를 선택합니다.
URL에 사용할 경우 URL-safe 옵션을 활성화하세요.
2단계: 데이터 입력
텍스트를 직접 입력하거나, 샘플 텍스트를 선택하거나, 파일을 드래그&드롭으로 업로드합니다.
입력 즉시 실시간으로 변환 결과가 표시됩니다.
3단계: 결과 확인 및 복사
변환된 결과를 확인하고, 복사 버튼으로 클립보드에 복사합니다.
파일의 경우 Data URI 형태로 복사하거나 원본 파일로 다운로드할 수 있습니다.
4단계: 활용
복사한 Base64 코드를 HTML, CSS, API 호출 등에 활용합니다.
이미지 탭에서 Base64 이미지 데이터의 미리보기도 확인할 수 있습니다.
실전 활용 시나리오
API Basic Authentication 헤더 생성
많은 REST API에서 Basic Auth 인증 방식을 사용합니다.
사용자명과 비밀번호를 콜론(:)으로 연결한 후 Base64로 인코딩하면 인증 헤더를 만들 수 있습니다.
예시
입력: admin:password123
Base64: YWRtaW46cGFzc3dvcmQxMjM=
헤더: Authorization: Basic YWRtaW46cGFzc3dvcmQxMjM=
이미지 인라인 삽입 (Data URI)
작은 아이콘이나 로고를 Base64 Data URI로 변환하면 별도의 HTTP 요청 없이
HTML이나 CSS에 직접 삽입할 수 있어 페이지 로딩 속도를 향상시킵니다.
HTML 사용 예시
CSS 사용 예시
일반적으로 10KB 이하의 작은 이미지에 Data URI 사용을 권장합니다.
큰 이미지는 별도 파일로 서빙하는 것이 캐싱 측면에서 유리합니다.
JWT 토큰 내용 확인
JWT(JSON Web Token)는 Header, Payload, Signature 세 부분을 점(.)으로 구분하며,
Header와 Payload는 Base64URL로 인코딩되어 있습니다.
디코딩 모드에서 URL-safe 옵션을 켜고 각 부분을 디코딩하면 내용을 확인할 수 있습니다.
JWT Payload 디코딩 예시
입력: eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ik1vd2F0b29sIn0
결과: {"sub":"1234567890","name":"Mowatool"}
이메일 템플릿에 이미지 삽입
이메일 클라이언트에서는 외부 이미지가 차단되는 경우가 많습니다.
Base64로 인코딩한 이미지를 인라인으로 삽입하면 수신자가 별도의 설정 없이
이미지를 바로 확인할 수 있습니다.
단, 인라인 이미지가 많으면 이메일 크기가 커져 스팸으로 분류될 수 있으므로
로고나 서명 이미지 등 필수적인 요소에만 사용하는 것을 권장합니다.
Base64 인코딩과 암호화의 차이
중요: Base64는 인코딩이지 암호화가 아닙니다.
누구나 Base64 문자열을 디코딩하여 원본 데이터를 복원할 수 있습니다.
| 항목 | Base64 인코딩 | 암호화 (AES, RSA 등) |
|---|---|---|
| 목적 | 데이터 표현 형식 변환 | 데이터 보호 |
| 키 필요 | 불필요 | 필수 (비밀키/공개키) |
| 복원 가능 | 누구나 가능 | 키 보유자만 가능 |
| 용도 | 데이터 전송, 텍스트 삽입 | 기밀 보호, 인증 |
따라서 비밀번호, API 키, 개인정보 등 민감한 데이터는 반드시 적절한 암호화 방식으로 보호해야 하며,
Base64 인코딩만으로는 보안이 확보되지 않습니다.
한글(UTF-8) Base64 인코딩 시 주의사항
한글은 UTF-8에서 한 글자당 3바이트를 차지합니다.
따라서 영문에 비해 Base64 인코딩 결과가 상대적으로 길어집니다.
인코딩 비교
"Hello" (5바이트) → "SGVsbG8=" (8문자)
"안녕" (6바이트) → "7JWI64WV" (8문자)
"안녕하세요" (15바이트) → "7JWI64WV7ZWY7IS47JqU" (20문자)
- JavaScript에서의 주의점: 브라우저의 btoa() 함수는 Latin-1 문자만 지원하므로,
한글을 직접 넣으면 에러가 발생합니다.
모와툴은 TextEncoder API를 사용하여 UTF-8 바이트 배열로 변환 후 인코딩하므로 한글이 정확하게 처리됩니다. - 디코딩 시: 반드시 UTF-8로 디코딩해야 한글이 올바르게 복원됩니다.
다른 문자 인코딩(EUC-KR 등)으로 인코딩된 데이터는 깨질 수 있으니 주의하세요.
자주 묻는 질문 (FAQ)
Q. Base64 인코딩은 암호화인가요?
A. 아닙니다.
Base64는 단순한 인코딩 방식으로, 누구나 디코딩하여 원본을 복원할 수 있습니다.
보안 목적으로는 AES, RSA 등의 암호화 방식을 사용해야 합니다.
Q. 왜 크기가 33% 증가하나요?
A. Base64는 3바이트(24비트)를 4개의 6비트 값으로 변환합니다.
4/3 = 1.333..., 즉 약 33.3%의 크기 증가가 발생합니다.
패딩(=)을 포함하면 최대 37%까지 증가할 수 있습니다.
Q. URL-safe Base64는 언제 사용하나요?
A. URL 파라미터, 쿼리 스트링, 파일명 등에 Base64를 사용할 때 필요합니다.
표준 Base64의 + 와 / 문자가 URL에서 특수한 의미를 가지므로,
이를 - 와 _ 로 치환하는 URL-safe 모드를 사용해야 합니다.
JWT 토큰도 URL-safe Base64(Base64URL)를 사용합니다.
Q. 최대 파일 크기가 5MB인 이유는?
A. 모든 처리가 브라우저 내에서 이루어지므로 메모리 제한이 있습니다.
5MB 파일을 Base64로 인코딩하면 약 6.7MB의 문자열이 생성되어,
브라우저의 안정적인 동작을 위해 이 제한을 설정했습니다.
대용량 파일은 서버 측 도구를 사용하는 것을 권장합니다.
Q. 입력한 데이터가 서버로 전송되나요?
A. 아닙니다.
모와툴의 Base64 인코더/디코더는 100% 클라이언트 처리입니다.
모든 변환은 브라우저의 JavaScript에서 수행되며, 입력 데이터는 외부로 전송되지 않습니다.
히스토리도 브라우저의 로컬 스토리지에만 저장됩니다.
Q. 한글이 깨지는 경우 어떻게 하나요?
A. 모와툴은 UTF-8 기반으로 인코딩/디코딩하므로 한글이 깨지지 않습니다.
다만, 다른 도구에서 EUC-KR 등 다른 문자 인코딩으로 생성된 Base64 데이터는
UTF-8로 디코딩 시 깨질 수 있습니다.
이 경우 해당 인코딩에 맞는 전용 디코더를 사용하세요.
개발자를 위한 Base64 활용 팁
- 이미지 인라인 삽입 기준: 10KB 이하의 아이콘/로고만 Data URI로 사용하세요.
그 이상은 별도 파일로 서빙하는 것이 캐싱과 성능에 유리합니다. - MIME 줄바꿈: 이메일(MIME) 전송 시 Base64는 76자마다 줄바꿈(CRLF)을 삽입합니다.
줄바꿈 옵션에서 76자를 선택하면 RFC 2045 MIME 규격에 맞는 출력을 생성합니다. - PEM 인증서 확인: PEM 파일의 BEGIN/END 태그 사이 내용이 Base64입니다.
디코딩하면 DER 형식의 인증서 바이너리 데이터를 확인할 수 있습니다. - 웹팩/번들러 설정: 웹팩의 url-loader나 asset/inline을 사용하면
빌드 시 작은 이미지를 자동으로 Base64 Data URI로 변환할 수 있습니다. - REST API 바이너리 전송: JSON은 바이너리 데이터를 직접 담을 수 없으므로,
이미지나 파일을 Base64로 인코딩하여 JSON 필드에 포함하는 방식이 자주 사용됩니다.
지금 바로 Base64 변환을 시작하세요!
텍스트, 이미지, 파일을 안전하게 Base64로 인코딩/디코딩하세요.
100% 브라우저 처리로 데이터가 외부로 전송되지 않으며, 변환 기록은 자동으로 저장됩니다.