티스토리 뷰


3byte가 한묶음이며, 없는 부분은 '='로 표시하여 1byte에 해당하는 char를 ASCII코드표에서 찾는다.

해당 char에 해당하는 hex값을 2진수로 변환 그리고 다시 6bit씩 짤라서 10진수로 변환한다.

10진수에 해당하는 값을 base64색인표에서 찾는다.



결국 3byte(24bit)에서 6bit씩 짤라 다시 byte로 만드므로, 항상 4byte의 배수가 길이가 된다.

그리고 추가로 빈byte에는 '='가 되는데 이것은 디코딩을 위함이다.

예제를 보시죠.

 

예제)

원문 : bri

16진수 : 62, 72, 69

10진수 : 98, 114, 115

2진수 : 01100010, 01110010, 01101001

6bit로 : 011000, 100111, 001001, 101001

10진수 : 24, 39, 9, 41

base64표 : YnJp

 

원문 : br

16진수 : 62, 72

10진수 : 98, 114

2진수 : 01100010, 01110010

6bit로 : 011000, 100111, 001000, null처리??

10진수 : 24, 39, 8, null

base64표 : YnI=

 

원문 : b

16진수 : 62

10진수 : 98

2진수 : 01100010

6bit로 : 011000, 100000, null, null처리??

10진수 : 24, 32, null, null

base64표 : Yg==



댓글