이게 뭔가요?
Base64는 이진 데이터나 텍스트를 알파벳·숫자·+·/ 64개 문자로만 표현하는 인코딩 방식입니다. 이 도구는 평문을 Base64로 바꾸거나, 반대로 Base64 문자열을 원래 텍스트로 되돌립니다. 한글처럼 여러 바이트를 쓰는 문자도 UTF-8 기준으로 정확히 처리합니다. 인코딩 결과는 원본보다 약 33% 길어지는 대신, 텍스트만 허용되는 곳(이메일 본문, JSON 필드, 데이터 URI 등)에 이진 데이터를 안전하게 실어 보낼 수 있습니다.
언제 쓰나요?
이미지를 CSS나 HTML에 인라인으로 넣는 데이터 URI를 만들 때, HTTP Basic 인증 헤더(Authorization: Basic ...)를 확인할 때, JWT의 페이로드를 눈으로 뜯어볼 때, 또는 API가 base64로 인코딩된 값을 돌려줬을 때 그 안을 확인하려고 씁니다.
실무에서 자주 틀리는 점
- 암호화가 아닙니다. Base64는 누구나 즉시 되돌릴 수 있는 인코딩일 뿐, 비밀번호나 토큰을 “숨기는” 용도로 쓰면 안 됩니다.
- URL-safe 변형. 일반 Base64의
+·/·=는 URL에서 문제를 일으켜, JWT 등은-·_를 쓰고 패딩을 뺀 base64url을 사용합니다. 둘을 섞으면 디코딩이 깨집니다. - 줄바꿈·공백. 복사 과정에서 끼어든 개행이나 공백 때문에 디코딩이 실패하기도 합니다.
실무에서 — 작은 로딩 스피너 아이콘을 여러 페이지에서 쓰는데 매번 별도 요청이 나가는 게 아까워, PNG를 Base64 data URI로 만들어 CSS에 인라인한 적이 있다. 반대로 어떤 외부 API가 Basic 인증을 요구해서
Authorization: Basic ...헤더 값을 디코딩해 보니 아이디:비밀번호가 그대로 보였고, 그때 “Base64는 인코딩이지 암호화가 아니다”를 팀에 다시 각인시켰다.