"베이스64"의 두 판 사이의 차이

2 바이트 추가됨 ,  6개월 전
→‎MIME: 띄어쓰기를 추가함
(3 개의 출처 구조, 0 개의 링크를 깨진 것으로 표시 #IABot (v2.0beta10))
(→‎MIME: 띄어쓰기를 추가함)
태그: m 모바일 웹
 
인코딩된 문자열은 알파벳 대소문자와 숫자, 그리고 "+", "/" 기호 64개로 이루어지며, "="는 끝을 알리는 코드로 쓰인다.
 
베이스64의 정확한 규격은 RFC 1421, RFC 2045에 정의된다. 연속된 8비트 바이트를 인코딩하도록 정의되어 있으며, 이는 대부분 시스템에서 파일의 정의와 들어맞는다. 베이스64코딩을베이스64 코딩을 거친 결과물은 원본보다 대략 4/3 정도 크기가 늘어나게 되며, 보통 의미없어 보이는 문자열이 나열된 형태가 된다.
 
데이터를 베이스64로 바꾸는 과정은 다음과 같다. 우선 24비트 버퍼에 위쪽(MSB)부터 한 바이트씩 세 바이트를 집어넣는다. 그리고 남은 바이트가 3바이트 미만이라면, 버퍼의 남은 부분은 0으로 채워넣게 된다. 그리고, 버퍼의 위쪽부터 6비트<ref>64 = 2<sup>6</sup>이므로</ref>씩 잘라 그 값을 읽어, 다음에 정렬된 64개 <code>"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"</code>의 문자 중에서 읽은 값 번째 문자를 골라 출력한다. 만약 입력된 바이트가 하나라면 출력 중 두 개만이 사용되고 나머지 둘은 <code>"="</code>으로 패딩되며, 입력된 바이트가 둘이라면 출력 중 세 개 만이 사용되고 나머지 하나는 <code>"="</code>으로 패딩되게 된다. 이것은 원본으로 되돌릴 때 원본에는 없던 비트가 생기는 것을 방지하기 위함이다. 이 과정을 입력 데이터가 끝날 때까지 반복하면 인코딩이 된다.
LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=
</pre>
 
== UTF-7 ==
RFC 2152에서 정의된 UTF-7은 Modified BASE64라 불리는 시스템을 의미한다. 이 data encoding scheme는 UTF-16을 SMTP와 같이 7비트를 사용하는 ASCII문자로 변환하는데 사용된다. 이는 MIME를 사용하는 BASE64 encoding의 변화된 방식이다. Modified BASE64 알파벳은 MIME BASE64 알파벳으로 구성되어 있으나, “ = ” 패딩 기호는 사용하지 않는다. UTF-7은 메일 헤더로 구성되어 사용되며<ref>RFC 2047로 정의</ref>, “ = ”기호는 quoted-printable encoding을 위한 이스케이프 문자로 사용된다. Modified BASE64는 간단하게 유용한 비트를 포함하고 있는 마지막 BASE64 숫자<ref>마지막 BASE64숫자 중 0~3을 제외한 미사용 비트</ref> 뒤에 바로 패딩과 끝을 생략한다.

편집

166