* 입력한 콘텐츠는 서버로 전송되지 않습니다. 모든 계산은 브라우저에서 직접 수행됩니다
평문
인코딩된 텍스트

Base64 인코딩이란?

Base64 인코딩은 데이터(주로 바이너리)를 ASCII 문자 집합으로 변환하는 방법입니다. Base64는 암호화나 압축 기술이 아닙니다. 데이터를 가려주는 것처럼 보여서 암호화와 혼동하기도 하지만, Base64로 인코딩된 정보의 크기는 원본 데이터의 약 1.3333배입니다.

Base64는 가장 널리 사용되는 기수 인코딩 기술이며, Base16과 Base32가 그 외에 흔히 쓰이는 인코딩 방식입니다.

Base64 인코딩은 바이너리 데이터를 일반 ASCII 텍스트로 변환하는 가장 일반적인 방법 중 하나입니다. HTML 마크업의 이미지나 웹 요청처럼 바이너리 데이터를 쉽게 처리하지 못하는 시스템 간 통신에 매우 유용한 형식입니다.

Base64는 어떻게 동작하나요?

데이터를 Base64로 변환하는 것은 여러 단계를 거치는 과정입니다. 텍스트 문자열의 경우 다음과 같이 동작합니다:

  1. 입력 텍스트의 8비트 바이너리 버전을 계산합니다
  2. 8비트 데이터를 6비트 청크 단위로 재그룹화합니다
  3. 각 6비트 바이너리 청크의 10진수 값을 찾습니다
  4. Base64 조회 테이블에서 각 10진수 값에 해당하는 Base64 기호를 찾습니다
Base64 인코딩 테이블
문자문자
0A32g
1B33h
2C34i
3D35j
4E36k
5F37l
6G38m
7H39n
8I40o
9J41p
10K42q
11L43r
12M44s
13N45t
14O46u
15P47v
16Q48w
17R49x
18S50y
19T51z
20U520
21V531
22W542
23X553
24Y564
25Z575
26a586
27b597
28c608
29d619
30e62+
31f63/

Base64 인코딩을 왜 사용하나요?

바이너리 형식으로 정보를 전송하는 것은 위험할 수 있습니다. 모든 애플리케이션이나 네트워크 시스템이 원시 바이너리를 처리할 수 있는 것은 아니기 때문입니다. 반면, ASCII 문자 집합은 널리 알려져 있고 대부분의 시스템에서 다루기 매우 간단합니다.

예를 들어 이메일 서버는 텍스트 데이터를 기대하므로 일반적으로 ASCII를 사용합니다. 따라서 이미지나 다른 바이너리 파일을 이메일 서버로 보내려면 먼저 텍스트 기반 형식으로 인코딩해야 합니다. 이때 Base64 인코딩이 바이너리 데이터를 올바른 형식으로 변환하는 데 매우 유용합니다.

Base64의 일반적인 활용 사례

HTML, JavaScript, CSS와 호환되는 방식으로 바이너리 데이터를 표현하는 데도 Base64를 사용할 수 있습니다. 예를 들어, Base64를 사용해 CSS나 JavaScript 파일에 이미지를 인라인으로 삽입할 수 있습니다.

폼 데이터나 JSON 같은 입력을 URL 안전한 축소 문자 집합의 문자열로 변환하는 데도 Base64를 사용할 수 있습니다. 하지만 일부 서버에서 플러스(+)와 슬래시(/) 문자를 특별히 해석할 수 있으므로, encodeURIComponent를 사용하는 것이 좋습니다.

Base64의 한계

Base64는 안전한 암호화 방법이 아닙니다.

Base64는 압축 방법도 아닙니다. 문자열을 Base64로 인코딩하면 일반적으로 출력이 33% 더 길어집니다.