Base64 인코드와 디코드

글이나 파일을 Base64로 바꾸거나, Base64를 다시 글로 되돌립니다. 문자 인코딩을 고를 수 있고 기본값은 UTF-8입니다. Hex를 고르면 16진수 바이트와 서로 바꿉니다. 계산은 브라우저 안에서 끝납니다.

Base64는 암호화가 아닙니다

JSON, HTML, 메일처럼 보이는 글자만 통과하는 곳에 임의의 바이트를 싣는 표기입니다. 누구든 되돌릴 수 있으니 비밀번호를 숨기는 용도가 아닙니다.

문자 인코딩이 글을 어떤 바이트로 바꿀지 정합니다. 기본값은 UTF-8이고, 한글과 한자, 이모지는 이렇게 바이트가 됩니다. 상대가 EUC-KR이나 UTF-16이면 거기서 바꾸세요. Hex는 칸의 내용을 16진수 바이트로 보아 Base64와 서로 바꿉니다. 파일은 원본 바이트라 인코딩을 쓰지 않고, PNG나 PDF가 글로 깨지지 않습니다. 서버로 보내지 않습니다.

  • 표준은 +와 /, 나머지는 =입니다. MIME과 대부분의 표준 라이브러리가 이 방식입니다.
  • URL 안전은 -와 _이고 패딩을 뺍니다. JWT의 각 조각이 이쪽입니다.
  • 76자 줄바꿈은 메일 줄 길이입니다. JSON에 붙일 때는 끄세요.
  • data URI는 img나 CSS url()용입니다. 이미지는 파일 이름이 아니라 파일 자체를 넣습니다.

쓰는 방법

  1. 글을 붙이거나 파일을 고릅니다. 파일을 고르면 글상자가 아니라 바이트를 인코드합니다.
  2. 디코드는 표준과 URL 안전을 모두 받고, 공백과 줄바꿈은 무시합니다.
  3. data URI 접두사는 다음에 HTML이나 CSS에 넣을 때만 붙입니다.
  4. 실패하면 문자열이 잘렸거나 Base64가 아닙니다.

문자 인코딩이 바이트를 먼저 정합니다. 한글은 UTF-8에서 한 글자가 3바이트인 경우가 많고, EUC-KR에서는 보통 2바이트입니다. 다른 도구와 결과가 다르면 같은 인코딩으로 맞추거나 Hex로 바이트를 보세요. 바이트는 문자열을 바이트로, 퍼센트 인코딩은 URL 인코드입니다.

질문

되돌리니 글자가 깨집니다

그 바이트는 고른 인코딩의 글이 아닙니다. EUC-KR이나 UTF-16을 시도하거나 Hex로 바이트를 보세요. 이미지나 압축 파일을 글상자로 보면 그렇게 보입니다. 파일은 원본 바이트라 문자 인코딩을 쓰지 않습니다.

끝의 = 가 꼭 있어야 하나요

없어도 디코드합니다. 상대 파서가 엄격하면 URL 안전을 끄고 =를 남기세요.