많은 예제에 나오는 인코딩 방식인 Base64에 대한 개념을 잡기위한 글입니다.
Base64는 이진 데이터를 ASCII 문자로 변환하는 인코딩 방식 중 하나이다.
이진 데이터를 인코딩하여 전송하거나 저장할 때 사용한다.
Base64 디코딩은 인코딩의 반대과정으로, Base64로 인코딩된 문자열을 이진 데이터로 디코딩하는 과정입니다. 디코딩된 이진 데이터는 원래의 이진 데이터와 같아야 한다.
인코딩된 문자열 끝에 하나 또는 두 개의 '=' 문자가 채워져 4자의 배수가 된다. (패딩 개념)
예를 들어 Base64에서 이진 데이터 "101"을 인코딩하려는 경우 인코딩된 데이터의 끝을 나타내는 '=' 문자와 함께 "MTA="로 인코딩됨
Base64.getDecoder()는 기본 인코딩을 사용합니다.
이진 데이터로 이루어진 이미지파일 -> Base64인코딩
이메일로 전송할때, 일부 이메일 클라이언트는 이진 데이터를 올바르게 처리하지 못 할수 있다.
이런 경우에 Base64인코딩을 사용해 ASCII 문자로 변환해 첨부하여 보냄
문자열 -> Base64
- 인코딩
각 문자를 이진 데이터로 변환 후 6비트씩 자름
해당 비트값을 ASCII 문자로 표현
- 디코딩
ASCII 문자(10진법 사용)를 64진법으로 변환
이진 데이터를 6비트씩 자르고 문자로 변환