PracticeEveryday
Base64 본문
Base64
- 인코딩( Encoding )은 파일에 저장된 정보의 형태나 형식을 데이터 표준화, 보안, 처리 속도 향상, 저장 공간 절약
등을 위해서 다른 형태로 변환하는 처리 혹은 그 처리 방식을 이야기합니다.
- 이메일 등의 전송, 동영상 이미지 영역에서 많이 사용되며, 반대말을 디코딩 ( Decoding )입니다.
- Base64를 직역하면 64진법이라는 뜻입니다.
- Base64란 8비트 이진 데이터 ( 예를 들어 실행 파일이나, ZIP 파일 등 )를 문자 코드에 영향을 받지 않는 공통 ASCII
영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개녑입니다.
- Base64는 어떤 문자와 기호를 쓰느냐에 따라 다양한 변종이 있지만, 대부분 처음 62개는 알파벳 A - Z, a - z , 0 - 9를
사용하며 마지막 두개를 어떤 기호를 쓰느냐의 차이만 있습니다.
- Base64 인코딩 과정은 먼저 24 bit의 buffer를 생성하여 위쪽 ( MSB )부터 바이트 데이터를 넣은 뒤,
버퍼의 위쪽부터 6bit 단위로 잘라 Base64 테이블의 ASCII 문자로 변홥합니다.
=> 원본 문자열 > ASCII binary > 6 bit cut > base 64 Encoding
EX) Man 이라는 문자를 Base 64 로 인코딩 하면 Man > 77 97 110 > 01001101 01100001 01101110 > TWFu로
변환이 됩니다.
Base64
- 위 과정대로 Base64로 인코딩 하게 되면 6Bit당 2Bit의 Overhead가 발생하여 전송할 데이터가 33% 정도
증가합니다.
- 하지만 통신 과정에서 바이너리 데이터의 손실을 막기 위해 Base64 인코딩을 진행한 후 사용됩니다.
- 플랫폼 독립적으로 Binary Data ( 이미지나 오디오 )를 전송할 필요가 있을 경우 ASCII로 Encoding 하여
전송하게 되면 여러가지 문제가 발생할 수 있습니다.
대표적인 문제는
ASCII는 7 bits Encoding인데 나머지 1bit를 처리하는 방식이 시스템 별로 상이합니다.
일부 제어 문자 (e.g. Line ending)의 경우 시스템 별로 다른 코드값을 가집니다.
- Base64는 ASCII 중 제어 문자와 일부 특수문자를 제외한 64개의 안전한 출력 문자만 사용합니다.
=> 즉 Base64는 HTML 또는 Email과 같이 문자를 위한 Media 에 Binary Data를 포함해야 될 필요가 있을 때,
포함된 Binary Data가 시스템 독립적으로 동일하게 전송 또는 저장된느 걸 보장하기 위해 사용합니다.
[Base 64] Base64이란 무엇일까? / Base64 사용 이유와 인코딩과 디코딩
[Base 64] Base64이란 무엇일까? / Base64의 인코딩과 디코딩 인코딩(encoding)은 파일에 저장된 정보의 형태나 형식을 데이터 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태
devuna.tistory.com
Why do we use Base64?
Wikipedia says Base64 encoding schemes are commonly used when there is a need to encode binary data that needs be stored and transferred over media that are designed to deal with textual data. T...
stackoverflow.com
'정리 > CS' 카테고리의 다른 글
HTTP vs HTTPS (0) | 2022.07.01 |
---|---|
Big O (0) | 2022.06.21 |
Serverless (0) | 2022.06.15 |
클라우드 컴퓨팅 (0) | 2022.06.15 |
TDD? (0) | 2022.06.10 |