Base64란?
Base64
이진(Binary) 데이터를 64개의 ASCII 문자로 구성된 문자열로 변환하는 인코딩 방식이다.
ASCII 코드는 원래 128개의 문자를 사용할 수 있지만, base64 인코딩은 그 중에서 '64개의 숫자'만을 사용한다.
base64는 HTTP 헤더로 안전하게 텍스트로 전송할 수 있게 해준다. 따라서 base64는 인증서, 인증 키를 인코딩할 때도 많이 사용된다.
base64는 바이너리 데이터를 6비트 단위로 잘라서 각 6비트 값(0~63)을 이 64개의 문자 중 하나로 매핑한다.
텍스트 기반 시스템에서도 binary 데이터를 안전하게 구성할 수 있다는 장점이 있다.
예를 들어, 이메일과 같은 텍스트 기반 프로토콜에서 이미지를 첨부할 때, 이미지를 base64로 변환해서 전송하면 손실 없이 안전하게 전달된다.
Base64는 데이터를 ASCII 문자열로 변환하는 인코딩 방식인데, 이 과정에서 데이터가 33% 정도 더 커진다는 단점이 있다.
이는 Base64가 3바이트의 바이너리 데이터를 4바이트의 ASCII 문자로 변환하기 때문이다.
3바이트 데이터는 총 3 * 8 = 24bit 이다.
Base64는 이 24bit를 6bit씩 나눈다. 그러면 4개의 6bit 조각이 나온다.
각각의 6bit 조각은 0~63 사이의 값을 가진다.
각 6bit 조각을 Base64의 64개 문자 중 하나로 변환한다.
3bytes를 4개의 문자(4bytes)로 변환했으므로, 데이터 크기가 더 커지게 된다.
즉, 원본 데이터 크기가 nn 바이트일 때, Base64로 인코딩된 데이터의 크기는 대략 n × 1.33(4/3) 바이트가 된다.
회사 메일이 base64로 인코딩되어있어 DBA차장님과 이야기한 것이 생각나 base64에 대해 조사해 봤다.
근데 gmail이나 naver메일은 base64를 안쓴다. 흐흠..
[참고]
https://docs.tosspayments.com/resources/glossary/base64
Base64 | 토스페이먼츠 개발자센터
Base64는 이진(Binary) 데이터를 64개의 ASCII 문자로 구성된 문자열로 변환하는 인코딩 방식입니다.
docs.tosspayments.com
https://win100.tistory.com/366
[메일] 왜 메일의 첨부파일의 크기는 원본 파일의 크기보다 클까?
왜 메일의 첨부파일의 크기는 원본파일의 크기보다 클까요? 결론부터 말하면 banary로 이루어진 이미지나 문서, 동영상들이 메일에 첨부될때 base64라는 문자열 기반으로 변경되어 메일에 실리기
win100.tistory.com