[Network] base64

HyunDong Lee·2021년 6월 29일
0

Network

목록 보기
6/10
post-thumbnail

base64

컴퓨터 분야에서 쓰이는 base64란 8비트 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다.
Base 64를 글자 그대로 번역하면 64진법이란 뜻이다. 64진법은 2의 제곱수들에 한해서 ascii 문자들을 표현할 수 있는 가장 큰 진법이다. 128진법은 128개의 기호를 표현할 수 있지만 화면에 표시되는 ASCII 문자들은 128개가 되지 않는다. 그러한 이유때문에 인코딩은 전자 메일을 통한 이진 데이터 전송 등에 많이 쓰이고 있다. Base 64에는 어떤 문자와 기호를 쓰느냐에 따라 여러 변종이 있지만 마지막 두 개를 어떤 기호를 쓰는지의 차이점만 존재한다고 한다.


Mime은 전자 우편을 위한 인터넷 표준 포맷이다. 전자 우편은 7비트 ASCII 문자를 사용하여 전송되기 때문에, 8비트 이상의 코드를 사용하는 문자나 이진 파일들은 MIME 포맷으로 변환되어 SMTP로 전송된다.

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

Base64로 인코딩 하는 이유

base64로 인코딩을 하게 되면 6bit당 2bit overhead가 발생하여 전송해야될 데이터의 크기가 30%이상 늘어나게 되고, 인코딩, 디코딩 과정을 갖게 되는데 하는 이유가 있다.
통신과정에서 binary데이터의 손실이 있을 수 있기 때문에 그 것을 안정성을 보장하고자 사용된다.

Ascii로 인코딩하여 전송을 하게되면 ascii는 위에 있다싶이 7비트 encoding인데 나머지 1bit를 처리하는 방식은 시스템마다 다를 수 있기 때문이다.

또 일부 제어 문자의 경우에도 시스템 별로 다른 코드값을 가진다.

따라서 ASCII로 ENCODING을 하는것보다
BASE64로 인코딩은 HTML 또는 EMAIL과 같이 문자를 위한 MEDIA에 Binary data를 포함시켜야 될 때 어떤 시스템이더라도 동일하게 전송 및 저장되는 것을 보장하기 위함이다.

출처

0개의 댓글