Base64
8비트 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식
- 화면에 표시가능한 ASCII 코드를 나타낼 수 있는 가장 큰 진법이 64
- 전자 메일을 통한 이진 데이터 전송에 많이 쓰인다.
- 알파벳 대소문자, 숫자, +, / 그리고 끝을 알리는 "="
- 인코딩 후 원본보다 4/3 정도 크기가 늘어난다.
왜 사용하는가 ?
base64로 인코딩할 경우 파일의 크기가 늘어나고 추가연산이 필요한데 사용하는 이유가 무엇인가?
- 통신 과정에서 바이너리 데이터의 손실을 막기 위해서 사용
- 안전한 출력 문자만을 사용하여 시스템별로 상이해서 생기는 문제들의 발생을 막기 위함 => 일부 제어문자의 경우 시스템 별로 다른 코드 값을 가짐
- 문자를 위한 미디어에 포함된 바이너리 데이터가 시스템에 영향을 받지 않고 동일하게 전송 또는 저장되는 걸 보장하기 위함
동작 방식
HI 를 변환하면 SEk가 된다. SEk=
간편 확인은 https://www.useotools.com/ko/base64-decoder 여기서 해봐도 좋을 것 같다.
-
변환하고 싶은 문자열의 ASCII 값을 8비트로 변환
-
6bit씩 나누고, 6bit 보다 부족할 경우 0을 추가한다.
-
색인에 맞게 변경하고 마지막에 = 붙여주면 끝
Refer
https://ko.wikipedia.org/wiki/%EB%B2%A0%EC%9D%B4%EC%8A%A464