Base64: 바이너리 데이터를 글자로
이메일, JSON, HTML 속성처럼 텍스트만 받는 곳이 있습니다. Base64는 어떤 데이터든 안전한 64가지 글자(A–Z, a–z, 0–9, +, /)로 바꿔 그대로 통과하게 합니다. "Hello"는 SGVsbG8=가 됩니다.
- 3바이트가 4글자가 되므로 Base64는 원본보다 약 33% 커집니다.
- 끝의 = 기호는 출력을 4글자의 배수로 맞추는 채움 문자입니다.
- URL 안전 버전은 웹 주소에서 특별한 뜻이 있는 +와 / 대신 -와 _를 씁니다.
암호화가 아닙니다
Base64는 키가 없어 누구나 디코딩할 수 있습니다. 비밀번호나 다른 비밀을 숨기는 데 절대 쓰지 마세요.
데이터 URI
작은 이미지는 data:image/png;base64, 뒤에 Base64 문자열을 붙여 HTML이나 CSS에 바로 넣을 수 있어 별도 다운로드가 필요 없습니다. 크기가 커지므로 작은 아이콘에만 알맞습니다. 이미지를 Base64로 도구로 데이터 URI를 만들거나, 데이터 URI를 이미지로 되돌릴 수 있습니다.
URL 인코딩은 다른 것
URL 인코딩(퍼센트 인코딩)은 웹 주소에 쓸 수 없거나 특별한 뜻이 있는 글자만 %와 바이트 값으로 바꿉니다. "café & crème"은 caf%C3%A9%20%26%20cr%C3%A8me가 됩니다. 공백은 %20, &는 %26, UTF-8에서 2바이트인 é는 %C3%A9이고 나머지는 그대로 읽힙니다. 한글도 UTF-8 바이트마다 %가 붙은 형태로 바뀝니다.
텍스트 인코딩과 디코딩은 Base64 인코딩·디코딩과 URL 인코딩·디코딩으로 할 수 있습니다.