2025. 6. 4. 14:15ㆍ지식
ASCII란?
ASCII 는 컴퓨터가 문자를 숫자로 다룰 수 있게 만든 표준 문자 인코딩 방식이다.
문자 ASCII 코드(10진수) 이진수 (8비트)
A | 65 | 01000001 |
a | 97 | 01100001 |
! | 33 | 00100001 |
Base64란?
Base64는 바이너리 데이터를 사람이 읽을 수 있는 ASCII 문자로 인코딩 하는 방식이다.
컴퓨터가 사용하는 0과 1의 바이너리 데이터를 전송이나 저장을 위해 텍스트로 바꾼다
이메일, 웹, 인증서 등 많은 시스템이 순수한 바이너리 데이터를 직접 처리하지 못한다.
Base64는 이름처럼 총 64개의 안전한 문자가 사용된다.
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
"Base64로 인코딩된 ASCII 텍스트" 라는 말은 무슨 말일까?
이 표현은 "바이너리 데이터를 Base64방식으로 인코딩해서, ASCII 문자들로만 구성된 텍스트 형태로 만든 것"
1. 바이너리 데이터
컴퓨터가 처리하는 진짜 데이터는 보통 이런식이다.
01101000 01101001
2. Base64 인코딩
위처럼 읽기 어려운 바이너리를, 다음과 같이 변환한다.
aGk=
처리 과정
문자 ASCII (10진수) 8비트 바이너리
h | 104 | 01101000 |
i | 105 | 01101001 |
총 2문자 = 16비트
Base64는 6비트 단위로 처리하므로, 16비트를 6비트 단위로 나누면:
011010 000110 1001
그런데 마지막 덩어리가 6비트가 부족하다. 그래서 맨 뒤에 2비트를 0으로 채워준다
011010 000110 100100
이제 각 6비트 값을 Base64문자로 변환한다.
6비트 조각 10진수 Base64 문자
011010 | 26 | a |
000110 | 6 | G |
100100 | 36 | k |
맨마지막에 패딩이 추가되었다는 의미를 포함하기위해 =를 추가한다.!
aGk=
Base64문자 1개는 6비트 의미를 담지만, 실제 물리적으로는 8비트로 저장되어야 하기 때문에 전체 용량이 33%증가하게 된다.
'지식' 카테고리의 다른 글
TLS (1) | 2025.07.26 |
---|---|
PEM과 CSR (0) | 2025.06.05 |
Nginx의 $remote_addr (0) | 2025.05.15 |
TCP 연결 설정과 종료 과정 (0) | 2025.03.30 |
HTTP 요청 메세지 분석 (0) | 2025.03.29 |