Base64 Encoding

2022. 3. 21. 19:07기타/info

  • What is Base64 Encoding

Base64 Encoding은 이름에서 알 수 있듯이 64 진법 기반의 인코딩 기법입니다.

8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념입니다.

64가 2의 제곱수(64 = 26)이며, 2의 제곱수들에 기반한 진법들 중에서 화면에 표시되는 ASCII 문자들을 써서 표현할 수 있는 가장 큰 진법이기 때문이다. 즉, 다음 제곱수인 128진법에는 128개의 기호가 필요한데 화면에 표시되는 문자들은 128개가 되지 않습니다.

인코딩된 문자열은 알파벳 대소문자와 숫자, 그리고 "+", "/" 기호 64개로 이루어지며, "="는 끝을 알리는 코드로 쓰입니다.

 

base64 table


  • Purpose of using base64 Encoding

1. Base64는 ASCII 중 제어문자와 일부 특수문자를 제외한 53개의 안전한 출력 문자만 이용하므로 데이터 전달에 더 안전성 높음 -> 화면에 표시할 수 있는 문자만을 다루기 때문에 시스템 간 전달에 안전성 높음

 

2. ASCII로 1과 0의 문자열을 쓰는 것보다 훨씬 효율적

 


  • Example of using base64 Encoding

Man을 예를들면

M 같은경우는 아스키코드값이 77이므로 이것을 binary로 변환한 다음 6비트씩 묶으면

010011이 됩니다.

010011은 index값이 19이고 Base64 테이블에서 19인 값이 T로 변환됩니다

나머지 a, n도 위와 같은 방법으로 변환됩니다

 

cf)

인코딩 과정중 남은 바이트가 3바이트[24bit] 미만 이라면 버퍼의 남은 부분에 패딩 비트[0]가 추가되고
인코딩 아웃풋에 ASCII 테이블에 없는 = 문자 생성

 

reference check : https://en.wikipedia.org/wiki/Base64, https://velog.io/@stthunderl/Base64%EC%9D%B8%EC%BD%94%EB%94%A9-%EC%9D%B4%EB%9E%80

'기타 > info' 카테고리의 다른 글

about laas paas saas  (0) 2023.01.21
opt-in & opt-out  (0) 2022.05.31
URL Encoding Table  (0) 2022.03.17
Comparing C to machine language  (0) 2022.03.12
SHELL CODE  (0) 2022.03.10