다해봄

Base64·URL 인코드·디코드

글을 넣으면 바로 바뀝니다. 잘못된 입력은 어디가 틀렸는지 알려 드립니다.

Base64 는 데이터를 64가지 글자로 바꾸는 방식입니다(RFC 4648).

RFC 4648·RFC 3986·WHATWG 기준 · 서버로 보내지 않음 · 업데이트

방식
방향

브라우저 안에서만 바꾸고, 넣은 글은 어디에도 보내지 않습니다.

같은 글, 방식별 결과

'연봉 3,000' 을 바꾸면

  • Base64
    7Jew67SJIDMsMDAw
  • 주소 한 조각 (encodeURIComponent)
    %EC%97%B0%EB%B4%89%203%2C000
  • 전체 주소 (encodeURI)
    %EC%97%B0%EB%B4%89%203,000
  • HTML
    연봉 3,000 (바꿀 기호 없음)
결과가 이상한가요?
어떤 점인지 골라 주시면 확인해서 고치겠습니다. 넣은 숫자는 보내지 않습니다.

자세히 알려 주실 내용은 [email protected] 로 보내 주세요.

어떻게 계산했나요

RFC 4648·RFC 3986·WHATWG 기준 · 서버로 보내지 않음

  • Base64: 글을 UTF-8 바이트로 바꾼 뒤(TextEncoder) RFC 4648 4절 표준 알파벳으로. URL-safe 는 5절(- _, 패딩 생략)
  • Base64 디코드: 공백·줄바꿈은 무시하고 표준·URL-safe 를 모두 받으며, 패딩(=)이 없어도 채워 읽습니다. 풀린 바이트가 UTF-8 이 아니면 그렇게 알립니다
  • URL: 주소 한 조각은 encodeURIComponent, 전체 주소는 encodeURI (RFC 3986 퍼센트 인코딩, 한글은 UTF-8 바이트마다 %XX)
  • HTML: & < > " ' 다섯 글자를 엔티티로. 풀 때는 숫자 엔티티(&#44544; &#xD55C;)와 자주 쓰는 이름 엔티티를 바꿉니다
  • 넣은 글과 결과는 서버·분석 도구·주소창·브라우저 저장소 어디에도 보내거나 남기지 않습니다

자주 묻는 질문

넣은 글이 어디로 가나요?

어디로도 가지 않습니다. 인코드·디코드는 이 기기의 브라우저 안에서만 하고, 넣은 글과 결과는 서버·분석 도구·주소창에 보내거나 남기지 않습니다. 토큰이나 비밀번호가 들어 있어도 밖으로 나가지 않지만, 공용 컴퓨터라면 다 쓴 뒤 칸을 지우세요.

한글을 Base64 로 바꾸면 왜 다른 사이트와 결과가 다를 때가 있나요?

한글을 바이트로 바꾸는 방식이 달라서입니다. 이 도구는 웹 표준인 UTF-8 로 바꿉니다('안녕' → 7JWI64WV). 옛 한국 시스템은 EUC-KR 을 써서 같은 글자가 다른 Base64 가 됩니다. 디코드했는데 UTF-8 이 아니라고 나오면 EUC-KR 로 만든 값일 수 있습니다.

URL-safe Base64 는 무엇인가요?

주소나 파일 이름에 넣기 좋게 + 를 - 로, / 를 _ 로 바꾸고 끝의 = 를 뗀 것입니다(RFC 4648 5절). JWT 같은 토큰이 이 방식을 씁니다. 디코드할 때는 두 방식 모두 자동으로 읽습니다.

encodeURIComponent 와 encodeURI 는 무엇이 다른가요?

'주소 한 조각'(encodeURIComponent)은 ? & = / # 같은 기호까지 바꿔서 검색어·파라미터 값에 씁니다. '전체 주소'(encodeURI)는 주소 모양을 만드는 기호는 그대로 두고 한글·공백만 바꿔, 주소 전체를 한 번에 넣을 때 씁니다. 파라미터 값에 전체 주소 방식을 쓰면 & 가 그대로 남아 값이 잘립니다.

디코드할 때 + 를 공백으로 바꾸는 옵션은 언제 켜나요?

폼 전송(application/x-www-form-urlencoded)이나 검색창 주소에서 온 값은 공백이 + 로 들어 있습니다. 그런 값이면 켜세요. 주소의 경로처럼 + 가 진짜 더하기인 곳에서는 끄세요.

Base64 는 암호화인가요?

아닙니다. 누구나 바로 풀 수 있는 글자 바꾸기일 뿐입니다. 비밀번호나 개인정보를 숨기는 용도로 쓰면 안 됩니다.