Base64

Stupefyee's avatar
Dec 06, 2024
Base64

1. Base64란?

  • 정의: 바이너리 데이터를 텍스트로 변환하는 인코딩 방식.
  • 사용 목적: 텍스트 기반 시스템(예: 이메일, URL)에서 바이너리 데이터를 전송하기 위해 사용.

2. Base64 인코딩 과정

  1. 바이너리 데이터 준비
      • 입력 데이터(텍스트/파일)를 바이너리 형식으로 변환.
  1. 6비트 단위로 분할
      • 바이너리 데이터를 6비트씩 나눔.
  1. Base64 문자 매핑
      • 6비트 값에 해당하는 Base64 문자로 변환.
        • 매핑 테이블: A-Z, a-z, 0-9, +, /
  1. 패딩 추가
      • 3바이트로 나눠지지 않을 경우, 끝에 =로 패딩 추가.

3. Base64 디코딩 과정

  1. Base64 문자 입력
      • 인코딩된 Base64 문자열 준비.
  1. Base64 문자 매핑 해제
      • 각 문자를 6비트 바이너리 값으로 변환.
  1. 8비트로 병합
      • 6비트 조각을 다시 8비트 단위로 합침.
  1. 바이너리 데이터를 원본으로 변환
      • 병합된 데이터를 원래 텍스트나 파일로 복원.

4. 예제

인코딩 예제
  1. 입력: Hello
  1. 바이너리 변환:
    1. H -> 01001000 e -> 01100101 l -> 01101100 l -> 01101100 o -> 01101111
  1. 6비트 분할:
    1. 010010 000110 010101 101100 011011 000110 1111
  1. Base64 매핑:
    1. QUxsbw==
디코딩 예제
  1. 입력: QUxsbw==
  1. Base64 매핑 해제:
    1. Q -> 010000 U -> 010100 ...
  1. 6비트 병합:
    1. 01001000 01100101 01101100 ...
  1. 원본 복원: Hello

5. 활용 사례

  • 이메일 첨부 파일 전송
  • 웹에서 바이너리 데이터(이미지, 파일) 인코딩
  • JSON, JWT에서 데이터 안전 전송
Share article

stupefyee