Base64 인코딩 디코딩

"Hello"를 Base64로 인코딩하면 SGVsbG8=, "한글"은 7ZWc6riA이 됩니다.

결과
문제가 해결됐나요?
Google 선호 출처로 추가

사용 방법

  1. 텍스트를 Base64로 바꾸려면 인코딩, Base64를 글자로 읽으려면 디코딩, 기기에 있는 파일을 바꾸려면 파일을 고릅니다.
  2. 입력 칸에 입력하거나 붙여 넣으면 결과가 바로 나옵니다.
  3. URL이나 파일 이름에 넣을 거라면 URL-safe에 체크하세요. 작은 이미지를 HTML이나 CSS에 넣으려면 파일을 변환한 뒤 data URL에 체크합니다.

계산 방법

Base64는 3바이트(24비트)씩 묶어 A부터 Z, a부터 z, 0부터 9, +, / 이렇게 64개 글자 중 4글자로 바꿉니다. 마지막 묶음이 3바이트가 안 되면 등호(=)를 한두 개 붙여 채웁니다.

텍스트는 먼저 UTF-8 바이트로 바꾸기 때문에 한글, é, 이모지처럼 영어가 아닌 글자도 오류 없이 제대로 인코딩되고 디코딩됩니다.

URL-safe 방식은 +와 /를 -와 _로 바꾸고 끝의 =를 뺍니다. 그래서 링크 안에 따로 이스케이프하지 않고 넣을 수 있습니다. 디코딩은 두 방식 모두, 줄바꿈이나 =가 빠진 입력도 받아 줍니다.

자주 묻는 질문

Base64는 암호화인가요?

아닙니다. 누구나 디코딩할 수 있어서 아무것도 숨기지 못합니다. JSON, 이메일, URL처럼 텍스트만 다니는 통로로 바이너리를 옮기기 위한 형식일 뿐입니다. 비밀 정보 보호에는 쓰지 마세요.

Base64로 바꾸면 왜 원본보다 커지나요?

3바이트가 4글자가 되므로 약 33% 커집니다. 여기에 패딩과 줄바꿈 몫이 조금 더해집니다.

디코딩하면 텍스트가 아니라고 나와요.

Base64 자체는 맞지만 안에 든 바이트가 UTF-8 텍스트가 아닌 경우입니다. 이미지, PDF 같은 바이너리에서 자주 생깁니다. 파일을 Base64로 만들 때는 파일 모드를 쓰고, 디코딩한 바이너리 저장은 전용 도구를 쓰세요.

파일이 업로드되나요?

아니요. 파일은 브라우저가 읽어서 기기 안에서 변환합니다. 아주 큰 Base64 문자열은 페이지를 멈추게 할 수 있어 파일은 5MB까지 받습니다.