Encoding base64

최대 1 분 소요

인코딩이란..

Binary Data를 Text로 바꾸는 행위

왜 쓸까 ??

파일에 저장된 정보의 형태를 표준화하여 보안, 처리속도, 저장공간 절약등의 이유에서 사용.
동영상 or 이미지 영역에서 많이 사용된다.

Base64 인코딩이란 ..

64진법을 의미 == 2^6
ASCII 문자들로만 이루어진 문자열로 바꾸는 인코딩 방식
이유는 8비트 이진데이터를 영향받지않기때문

인코딩과정 :

  1. 원본문자열을 10진수로변환 (ASCII코드 를 참조하여..)
  2. 변환된 10진수를 2진수로 나열.
  3. 변환된 2진수에대해 자릿수를 가공한다 (여섯자리씩)
  4. 가공된 자리수를이용해 다시 10진수로 변환(이때는 ASCII코드가 아닌, base64코드를 참조)

예제 :

Man이라는 문자열을 Base64로 인코딩

  1. ASCII 코드를 참조하여 문자열에 맞는 10진수를 가져온다.

    base64Eg

  2. 10진수(77, 97, 119) » 2진수(01001101, 01100001, 01101110)
  3. Bit가공 8자리 to 6자리 (01001101, 01100001, 01101110 » 010011, 010110, 000101, 101110)
  4. 가공된Bit base64테이블을 참조하여 10진수로환산 (010011, 010110, 000101, 101110 » 19, 22, 5, 46)

    base64Eg

왜 쓸까..??

보다 안전한 통신을 위함
통신시에 ASCII코드로 인코딩하여
전송하게되면 여러가지 문제가 발생함.


대표적으로 시스템간에 호환성 이슈가있다.

  1. ASCII는 7bits 인코딩이여서 1bit를 처리하방식이 시스템별로 상이.
  2. 일부 제어문자의경우 (개행) 시스템별로 다른 코드값을 가짐
    Base64는 ASCII 중 제어 문자와 일부 특수문자를 제외한
    64개의 안전한 출력 문자만 사용.

Base64로 인코딩을 하게되면 6bit당 2bit의 Overhead가 발생. 전송해야될 데이터의 크기가 33%정도 늘어나게되지만, 그래도 .. 통신과정에서 바이너리 데이터의 손실을 막기위해 사용됨.

카테고리:

업데이트: