Base64 인코딩·디코딩

Base64는 임의의 데이터를 글자, 숫자, 기호 몇 개만으로 다시 적는 방식입니다. 그래서 텍스트만 오갈 수 있는 통로를 지날 수 있습니다. JSON의 한 칸, 스타일시트 안의 data URI, 메일 첨부 헤더, 쿠버네티스 시크릿 같은 곳 말입니다. 이 도구는 적어 넣은 텍스트와 파일 전체를 양방향으로 바꿔 주고, 주소창에서 깨질 두 글자를 바꿔 놓은 URL 안전 형식도 만들어 줍니다. 이 처리가 기기 안에서만 이뤄진다는 점이 핵심입니다. 사람들이 디코딩하는 문자열은 대개 토큰, 키, 비밀 값이고, 그것을 서버로 보내는 사이트에 붙여 넣는 순간 그대로 넘겨주는 셈이기 때문입니다.

Base64로 바꾸고 되돌리는 방법

  1. 값을 적어 넣으려면 '텍스트'를, 기기의 파일을 바꾸려면 '파일'을 고릅니다.
  2. '인코딩'과 '디코딩'을 오갑니다. 텍스트 모드에서는 적는 대로 결과가 갱신됩니다.
  3. 값이 주소나 파일 이름에 들어갈 것이라면 'URL 안전'을 켜세요. + 와 / 를 다른 글자로 바꾸고 끝의 채움 문자를 뺍니다.
  4. 결과를 복사하거나, 파일 모드에서는 디코딩한 바이트를 파일로 내려받습니다.

Base64에 대해 자주 묻는 것

입력한 데이터가 어딘가로 전송되나요?

아닙니다. 인코딩과 디코딩 모두 브라우저에 내장된 기능으로 페이지 안에서 처리합니다. 기록하지도 저장하지도 전송하지도 않기 때문에, 토큰을 여기서 디코딩해도 안전합니다.

Base64는 암호화인가요?

아닙니다. 이 점이 중요합니다. 인코딩일 뿐 암호가 아니어서 누구나 열쇠 없이 즉시 되돌릴 수 있습니다. base64 문자열을 비밀번호나 비밀 값을 숨기는 수단으로 여기지 마세요. 글자 집합만 바뀔 뿐 읽기 어려워지지 않습니다.

URL 안전 형식이 무슨 뜻인가요?

표준 base64는 + 와 / 를 쓰는데 주소 안에서 이 글자들은 다른 뜻을 가지고, = 채움 문자도 흔히 잘려 나갑니다. URL 안전 형식은 그 둘을 - 와 _ 로 적고 채움 문자를 빼기 때문에 질의 문자열, 경로, 파일 이름에 넣어도 값이 온전합니다. 디코딩할 때는 두 형식 모두 받습니다.

인코딩하면 왜 파일이 커지나요?

Base64는 3바이트를 4글자로 적기 때문에 결과가 약 33% 커지고, 줄바꿈이 들어가면 조금 더 늘어납니다. 그 여분이 이진 데이터를 텍스트만 다니는 통로로 보내기 위해 치르는 값입니다.

디코딩했더니 텍스트가 아니라고 나옵니다.

바이트가 올바른 UTF-8이 아니기 때문입니다. 이미지나 PDF처럼 이진 자료를 디코딩한 경우입니다. 파일 모드로 바꾸면 그 바이트를 화면에 보여 주는 대신 파일로 저장해 줍니다.

Other tools

Languages