1. Base64란?
- 정의: 바이너리 데이터를 텍스트로 변환하는 인코딩 방식.
- 사용 목적: 텍스트 기반 시스템(예: 이메일, URL)에서 바이너리 데이터를 전송하기 위해 사용.
2. Base64 인코딩 과정
- 바이너리 데이터 준비
- 입력 데이터(텍스트/파일)를 바이너리 형식으로 변환.
- 6비트 단위로 분할
- 바이너리 데이터를 6비트씩 나눔.
- Base64 문자 매핑
- 6비트 값에 해당하는 Base64 문자로 변환.
- 매핑 테이블: A-Z, a-z, 0-9, +, /
- 패딩 추가
- 3바이트로 나눠지지 않을 경우, 끝에
=
로 패딩 추가.
3. Base64 디코딩 과정
- Base64 문자 입력
- 인코딩된 Base64 문자열 준비.
- Base64 문자 매핑 해제
- 각 문자를 6비트 바이너리 값으로 변환.
- 8비트로 병합
- 6비트 조각을 다시 8비트 단위로 합침.
- 바이너리 데이터를 원본으로 변환
- 병합된 데이터를 원래 텍스트나 파일로 복원.
4. 예제
인코딩 예제
- 입력:
Hello
- 바이너리 변환:
H -> 01001000
e -> 01100101
l -> 01101100
l -> 01101100
o -> 01101111
- 6비트 분할:
010010 000110 010101 101100 011011 000110 1111
- Base64 매핑:
QUxsbw==
디코딩 예제
- 입력:
QUxsbw==
- Base64 매핑 해제:
Q -> 010000
U -> 010100
...
- 6비트 병합:
01001000 01100101 01101100 ...
- 원본 복원:
Hello
5. 활용 사례
- 이메일 첨부 파일 전송
- 웹에서 바이너리 데이터(이미지, 파일) 인코딩
- JSON, JWT에서 데이터 안전 전송
Share article