유틸리티

Base64 인코딩이란? 텍스트와 이미지 변환 방법

API 문서를 읽다 보면 인증 헤더에 'Basic dXNlcjpwYXNz' 같은 문자열을 넣으라고 한다. 이 알 수 없는 문자열이 Base64로 인코딩된 'user:pass'다. 개발 중에 Base64를 다루는 상황은 생각보다 자주 온다.

Base64가 뭔가

Base64는 바이너리 데이터를 영문 대소문자, 숫자, +, / 총 64개 문자로 표현하는 인코딩 방식이다. 텍스트만 전송할 수 있는 환경에서 이미지나 파일 같은 바이너리 데이터를 안전하게 보내기 위해 만들어졌다.

예시 "Hello" → "SGVsbG8="
원본보다 약 33% 크기가 커지지만, 어디서든 텍스트로 전달할 수 있다.

어디에 쓰이나

  • API 인증: HTTP Basic Auth에서 아이디:비밀번호를 Base64로 인코딩해서 헤더에 넣는다
  • 이메일: 첨부파일을 MIME 형식으로 전송할 때 Base64로 변환한다
  • HTML 이미지 삽입: 작은 아이콘을 Data URL로 바꿔 HTML에 직접 넣으면 HTTP 요청을 줄일 수 있다
  • JWT 토큰: 페이로드를 Base64URL로 인코딩해서 전달한다
  • 설정 파일: 인증서나 키 데이터를 Base64로 저장하는 경우가 많다

텍스트 변환과 이미지 변환

구분입력출력용도
텍스트 → Base64일반 문자열Base64 문자열API 인증, 데이터 전송
Base64 → 텍스트Base64 문자열원본 문자열토큰 내용 확인, 디버깅
이미지 → Base64PNG, JPG 등Data URLHTML/CSS에 이미지 내장

이미지를 드래그해서 Base64 변환기에 놓으면 Data URL이 바로 생성된다. CSS background-image에 붙여넣거나 HTML img 태그의 src에 넣으면 별도 이미지 파일 없이 표시할 수 있다. 텍스트 인코딩/디코딩도 입력 즉시 결과가 나오니, JWT 토큰의 페이로드를 빠르게 확인할 때 편하다.

Base64는 암호화가 아니라 인코딩이다. 누구나 디코딩할 수 있으니, 민감한 정보를 Base64만으로 보호하면 안 된다.