Base64 인코더 및 디코더
텍스트를 Base64로 인코딩하거나 Base64를 텍스트로 디코딩합니다. 표준 및 URL 안전 알파벳을 지원합니다.
코드 예제
내 프로젝트에 그대로 복사해서 쓰세요. 모든 예제는 해당 언어의 표준 라이브러리만 사용하므로 설치할 것이 없습니다.
const text = 'Hello, wereld! 👋'
const bytes = new TextEncoder().encode(text)
const encoded = btoa(String.fromCharCode(...bytes))
console.log(encoded)기능 소개
Base64는 모든 바이트를 안전한 64개 문자로 된 일반 텍스트로 바꿔 줍니다. 덕분에 바이너리 데이터를 텍스트만 다루는 시스템(이메일 본문, JSON 필드, URL, 데이터 URI, HTTP 헤더)으로 전달할 수 있습니다. 이 도구는 텍스트를 Base64로 인코딩하고 Base64를 다시 텍스트로 디코딩하며, 모든 작업은 브라우저 안에서 이루어집니다.
사용 방법
- 인코딩 또는 디코딩을 선택합니다.
- 텍스트를 입력하거나 붙여넣고, 파일을 입력란에 끌어다 놓아도 됩니다.
- 표준 알파벳(
+와/) 또는 URL 안전 알파벳(-와_)을 고르고,=패딩을 추가할지 정합니다. - 결과를 복사하거나 다른 도구로 바로 보냅니다.
줄마다 따로 변환하는 옵션을 켜면 인코딩된 값 목록처럼 각 줄을 개별적으로 변환합니다.
예제
Hello, world!를 인코딩하면 다음과 같습니다.
SGVsbG8sIHdvcmxkIQ==
같은 바이트를 패딩 없이 URL 안전 알파벳으로 인코딩하면 다음과 같습니다.
SGVsbG8sIHdvcmxkIQ
알아두면 좋은 점
- Base64는 암호화가 아니라 인코딩입니다. 누구나 디코딩할 수 있습니다.
- 결과는 입력보다 약 3분의 1 더 큽니다(3바이트가 4문자가 됩니다).
- 텍스트는 기본적으로 UTF-8로 변환합니다. 디코딩한 텍스트에 이상한 문자가 보이면 원래 작성된 문자 집합을 선택하세요.
- JSON Web Token은 패딩 없는 URL 안전 알파벳을 사용합니다.
Base64란 무엇인가요?
Base64는 64개의 출력 가능한 문자로 바이너리 데이터를 표현하는 방식으로, 이메일 본문, JSON 필드, 데이터 URL처럼 텍스트만 허용하는 시스템을 통해서도 데이터를 전달할 수 있습니다. 3바이트가 4개의 문자가 되므로 결과는 약 33% 커집니다.
자주 묻는 질문
URL 안전 알파벳은 언제 사용하나요?
결과를 URL이나 파일 이름에 넣을 때 사용하세요. +와 /를 -와 _로 대체합니다. JWT는 패딩 없이 이 방식을 사용합니다.
디코딩한 텍스트에 이상한 문자가 표시되는 이유는 무엇인가요?
선택한 것과 다른 문자 집합으로 인코딩되었을 가능성이 높습니다. ISO-8859-1을 시도해 보거나, 데이터가 파일이 아니라 텍스트인지 확인하세요.
Base64는 암호화인가요?
아닙니다. 누구나 Base64를 디코딩할 수 있으므로 아무것도 숨기지 못합니다. 데이터를 전달하는 용도로만 사용하고 보호하는 용도로는 사용하지 마세요.