CodeKitHub
인코딩 도구

Base64 인코더/디코더 온라인

마지막 업데이트:

Base64는 3바이트의 데이터마다 4개의 ASCII 문자로 바꾸므로, 인코딩된 결과물은 원본보다 약 33% 커집니다. 텍스트를 Base64로 변환하거나 Base64 문자열을 다시 읽을 수 있는 텍스트로 디코딩하세요. 이 도구는 UTF-8 안전하게 처리되어 일반적인 Base64 도구가 깨뜨리기 쉬운 이모지, 한글, 기타 비ASCII 문자도 정확히 처리합니다. 모든 과정은 브라우저 안에서 로컬로 실행됩니다.

이 도구는 무엇인가요?

Base64는 이진 데이터나 텍스트 데이터를 안전한 64개의 ASCII 문자 집합(A–Z, a–z, 0–9, +, /)으로 변환하는 인코딩 방식입니다. HTML/CSS에 이미지를 삽입할 때, HTTP 기본 인증 헤더, 이메일 첨부파일(MIME), JSON 웹 토큰, 텍스트만 다룰 수 있는 채널을 통과해야 하는 API 페이로드 등 소프트웨어 전반에서 사용됩니다.

중요: Base64는 암호화가 아니라 인코딩입니다. 누구나 디코딩할 수 있습니다. Base64의 목적은 데이터를 비밀로 감추는 것이 아니라, 텍스트만 이해하는 시스템을 통해 안전하게 전송할 수 있게 만드는 것입니다.

Base64는 RFC 4648에 공식적으로 규정되어 있으며, 이 문서는 JWT나 웹 API에서 쓰이는 URL 안전 변형도 함께 정의합니다. +는 -로, /는 _로 치환해 퍼센트 인코딩 없이도 인코딩된 문자열이 URL 안에서 안전하게 이동할 수 있도록 합니다.

왜 사용해야 할까요?

  • API 토큰, JWT 세그먼트, 인증 헤더를 디코딩해 안의 내용을 확인.
  • 데이터 URI, 설정 파일, HTTP 헤더용 텍스트를 인코딩.
  • UTF-8 안전: 이모지와 비라틴 문자도 정확히 인코딩·디코딩.
  • 100% 비공개 — 변환이 브라우저 안에서 이루어지며 어디에도 업로드되지 않습니다.
  • 무료, 로그인 불필요, 크기 제한 없음.

사용 방법

  1. 입력창에 내용을 입력하거나 붙여넣으세요.
  2. "인코딩"을 클릭해 텍스트를 Base64로 변환하거나, "디코딩"을 클릭해 Base64를 텍스트로 되돌리세요.
  3. 디코딩이 실패하면 입력값이 올바른 Base64가 아닙니다—문자가 빠졌거나 공백이 섞이지 않았는지 확인하세요.
  4. "복사"를 클릭해 결과를 복사하세요.

예시

입력

Hello, CodeKitHub! 안녕 👋

결과

SGVsbG8sIENvZGVLaXRIdWIhIOyViOugle+8jPCfkYs=

한글과 이모지가 왕복 변환에서도 그대로 유지되는 걸 확인해 보세요—이게 바로 UTF-8 안전 처리의 핵심입니다.

실전 활용 팁

  • JWT 토큰은 점으로 구분된 세 개의 Base64 세그먼트로 이루어져 있습니다—첫 번째(헤더)와 두 번째(페이로드)를 각각 디코딩해 확인하세요. 세 번째는 이진 서명이라 알아볼 수 없는 문자로 나옵니다.
  • JWT 세그먼트 디코딩이 실패한다면 base64url 인코딩일 가능성이 큽니다. 표준 도구는 +/ 알파벳을 기대하므로, 먼저 -를 +로, _를 /로 바꿔 보세요.
  • Base64 문자열 안의 공백이나 줄바꿈은 대개 이메일이나 로그에서 남은 무해한 흔적이지만, 마지막 = 패딩이 빠진 경우는 문제일 때가 많습니다—데이터가 손상됐다고 단정하기 전에 먼저 길이를 확인해 보세요.
  • Base64는 데이터 크기를 약 33% 늘립니다. 작은 데이터에는 문제없지만, 몇 KB를 넘는 이미지라면 데이터 URI보다 실제 파일을 쓰는 편이 거의 항상 낫습니다.

실제 활용 사례

이 도구를 찾는 사람들이 매일 마주치는 세 가지 상황이 있습니다. Authorization 헤더나 JWT 안의 내용을 확인하는 경우, Base64로 감싸져 도착한 웹훅·API 페이로드 필드를 디코딩하는 경우(보통 JSON이므로 디코딩 후 포맷을 정리해 주세요), 디버깅 중에 데이터 URI나 Basic-Auth 문자열을 직접 만들어야 하는 경우입니다.

이미지나 파일 같은 이진 데이터의 경우, 텍스트로 디코딩했을 때 알아볼 수 없는 문자(모지바케)가 나오는 게 정상이라는 점을 기억하세요—데이터 자체는 완전히 유효할 수 있고, 단지 텍스트가 아닐 뿐입니다. 이진 데이터의 인코딩·디코딩은 코드 안에서 처리하는 것이 맞으며, 이 도구는 텍스트 위주 상황에 최적화되어 있습니다.

디코딩 실패 원인 진단하기

Base64 디코딩 실패는 거의 항상 세 가지 원인 중 하나로 귀결됩니다. 빈도순으로 나열하면, 첫째는 입력값이 실제로는 base64url(JWT나 URL 안전 문맥에서 흔한, +와 / 대신 -와 _를 쓰는 방식)이라 표준 디코딩이 받아들이기 전에 문자를 다시 바꿔줘야 하는 경우입니다. 둘째는 문자열이 어딘가에서 잘려나간 경우(마지막 몇 글자를 놓친 복사-붙여넣기, 혹은 중간에 잘린 로그 줄)로, 패딩까지 고려했을 때 올바른 Base64 문자열의 길이는 항상 4의 배수라는 점으로 감지할 수 있습니다. 셋째는 복사 과정에서 불필요한 문자(여분의 공백, 우연히 들어간 줄바꿈, 실수로 중복된 문자)가 섞여 들어간 경우로, 원본 소스에서 다시 타이핑하지 않고 직접 붙여넣는 것이 항상 더 안전한 이유이기도 합니다.

JSON 포맷터 · URL 인코더 / 디코더 · JWT 디코더

자주 묻는 질문

Base64는 암호화인가요?

아닙니다. Base64는 누구나 디코딩할 수 있는 가역적인 인코딩 방식으로, 보안성은 전혀 없습니다. 데이터를 보호해야 한다면 AES 같은 실제 암호화를 사용하세요. Base64는 어디까지나 데이터를 텍스트로 안전하게 전송하기 위한 용도입니다.

디코딩한 결과가 알아볼 수 없는 문자로 나오는 이유는 무엇인가요?

입력값이 실제로 Base64가 아니거나, 잘려나갔거나, 원본 데이터가 텍스트가 아니라 이미지 같은 이진 데이터였을 가능성이 있습니다. 이진 데이터는 읽을 수 있는 문자로 표시되지 않습니다.

끝에 붙는 = 기호는 무엇인가요?

패딩(padding)입니다. Base64는 입력 3바이트를 4개의 출력 문자로 바꾸는 블록 단위로 동작합니다. 입력 길이가 3으로 나누어 떨어지지 않으면 마지막 블록을 채우기 위해 = 문자가 하나 또는 두 개 추가됩니다.

이 도구는 이모지나 한글도 잘 처리하나요?

네. 텍스트를 먼저 UTF-8 바이트로 인코딩하는데, 이것이 표준적인 방식입니다. btoa()를 그대로 사용하는 단순한 도구들은 Latin-1 범위를 벗어난 문자에서 오류가 나지만, 이 도구는 그렇지 않습니다.

제 데이터가 어딘가에 업로드되나요?

아니요. 인코딩과 디코딩은 전부 브라우저 안에서 자바스크립트로 처리됩니다. 입력한 데이터는 기기 밖으로 나가지 않습니다.

관련 도구