Encoding base64
인코딩이란..
Binary Data를 Text로 바꾸는 행위
왜 쓸까 ??
파일에 저장된 정보의 형태를 표준화하여 보안, 처리속도, 저장공간 절약등의 이유에서 사용.
동영상 or 이미지 영역에서 많이 사용된다.
Base64 인코딩이란 ..
64진법을 의미 == 2^6
ASCII 문자들로만 이루어진 문자열로 바꾸는 인코딩 방식
이유는 8비트 이진데이터를 영향받지않기때문
인코딩과정 :
- 원본문자열을 10진수로변환 (ASCII코드 를 참조하여..)
- 변환된 10진수를 2진수로 나열.
- 변환된 2진수에대해 자릿수를 가공한다 (여섯자리씩)
- 가공된 자리수를이용해 다시 10진수로 변환(이때는 ASCII코드가 아닌, base64코드를 참조)
예제 :
Man이라는 문자열을 Base64로 인코딩
- ASCII 코드를 참조하여 문자열에 맞는 10진수를 가져온다.
- 10진수(77, 97, 119) » 2진수(01001101, 01100001, 01101110)
- Bit가공 8자리 to 6자리 (01001101, 01100001, 01101110 » 010011, 010110, 000101, 101110)
- 가공된Bit base64테이블을 참조하여 10진수로환산 (010011, 010110, 000101, 101110 » 19, 22, 5, 46)
왜 쓸까..??
보다 안전한 통신을 위함
통신시에 ASCII코드로 인코딩하여
전송하게되면 여러가지 문제가 발생함.
대표적으로 시스템간에 호환성 이슈가있다.
- ASCII는 7bits 인코딩이여서 1bit를 처리하방식이 시스템별로 상이.
- 일부 제어문자의경우 (개행) 시스템별로 다른 코드값을 가짐
Base64는 ASCII 중 제어 문자와 일부 특수문자를 제외한
64개의 안전한 출력 문자만 사용.Base64로 인코딩을 하게되면 6bit당 2bit의 Overhead가 발생. 전송해야될 데이터의 크기가 33%정도 늘어나게되지만, 그래도 .. 통신과정에서 바이너리 데이터의 손실을 막기위해 사용됨.