계산기 & 툴계산기 & 툴
개발

📄
Base64 변환기

문자열 또는 이미지를 Base64로 인코딩하거나, Base64 문자열을 일반 문자열로 디코딩할 수 있는 도구입니다.
문자열 또는 이미지를 Base64로 인코딩하거나, Base64 문자열을 디코딩해보세요.


Base64란?

Base64는 바이너리 데이터를 ASCII 문자열로 인코딩하는 방식입니다. 텍스트 기반 시스템에서 이진 데이터를 안전하게 전송하기 위해 사용됩니다.

왜 필요한가?

일부 시스템(예: 이메일, JSON)은 바이너리 데이터를 처리하지 못하기 때문에, 이를 텍스트로 변환하는 인코딩 방식이 필요합니다.

Base64의 탄생 배경

1. 바이너리 데이터를 전송하기 어려운 환경
1980~90년대의 전자통신 시스템(특히 이메일과 초기 네트워크 프로토콜)은 다음과 같은 제한사항이 있었습니다.
  • 7비트 ASCII 문자만 안정적으로 처리 가능
  • 바이너리 파일(예: 이미지, 실행파일, PDF 등)을 전송하면 깨지거나 손실 발생
  • 인코딩되지 않은 바이너리 데이터는 전송 도중 오류가 생길 수 있음
위와 같은 문제로 바이너리 데이터를 문자열로 안전하게 바꾸는 인코딩 방법이 필요해졌습니다.
2. MIME 표준의 등장 (RFC 2045~2049)
1990년대 초반, 이메일을 통해 텍스트 외의 콘텐츠(이미지, 첨부파일 등)를 안전하게 전송하기 위한 표준인 MIME (Multipurpose Internet Mail Extensions)이 등장했습니다.
  • MIME은 텍스트 기반의 이메일에서 바이너리 파일을 전송할 수 있게 만들기 위해 Base64 인코딩을 채택
  • RFC 2045에서 Base64가 정식 정의됨 (1996년)
3. 전송 안정성과 호환성
Base64는 다음과 같은 장점 덕분에 널리 사용되었습니다.
  • 바이너리 전송 불안정 - ASCII 문자로 안전하게 변환
  • 이메일에서 첨부파일 깨짐 - Base64로 인코딩하여 안정적인 전송 가능
  • 네트워크에서 제어 문자 오작동 - 제어 문자를 포함하지 않는 안전한 문자셋 사용
  • 프로그래밍 언어 간 호환성 - 언어에 무관한 문자열 기반 처리

🧮 인코딩 원리

1단계원본 데이터를 3바이트(24비트)씩 읽음
2단계6비트씩 나누어 총 4개의 숫자로 분리 (2⁶ = 64 → Base64)
3단계아래 64개의 문자로 매핑하여 출력
IndexCharacter
0A
1B
2C
3D
4E
5F
6G
7H
8I
9J
10K
11L
12M
13N
14O
15P
16Q
17R
18S
19T
20U
21V
22W
23X
24Y
25Z
26a
27b
28c
29d
30e
31f
32g
33h
34i
35j
36k
37l
38m
39n
40o
41p
42q
43r
44s
45t
46u
47v
48w
49x
50y
51z
520
531
542
553
564
575
586
597
608
619
62+
63/

✅ 인코딩 예제

- 입력 문자열: Hello
- ASCII 값: H(72) e(101) l(108) l(108) o(111)
- Base64 인코딩 결과: SGVsbG8=

✅ 디코딩 예제

- Base64 문자열: SGVsbG8=
- 디코딩 결과: Hello

📌 활용 예시

  • MIME 이메일 첨부파일
  • HTML/CSS 인라인 이미지
  • JWT Payload
  • HTTP Basic Auth

⚠️ 주의사항

  • 보안 목적의 암호화가 아님 (디코딩 가능)
  • 약 33% 데이터 크기 증가

🛠️ JavaScript 예제

const encoded = btoa('Hello');
const decoded = atob(encoded);

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."