Base64는 임의의 데이터를 글자, 숫자, 기호 몇 개만으로 다시 적는 방식입니다. 그래서 텍스트만 오갈 수 있는 통로를 지날 수 있습니다. JSON의 한 칸, 스타일시트 안의 data URI, 메일 첨부 헤더, 쿠버네티스 시크릿 같은 곳 말입니다. 이 도구는 적어 넣은 텍스트와 파일 전체를 양방향으로 바꿔 주고, 주소창에서 깨질 두 글자를 바꿔 놓은 URL 안전 형식도 만들어 줍니다. 이 처리가 기기 안에서만 이뤄진다는 점이 핵심입니다. 사람들이 디코딩하는 문자열은 대개 토큰, 키, 비밀 값이고, 그것을 서버로 보내는 사이트에 붙여 넣는 순간 그대로 넘겨주는 셈이기 때문입니다.
아닙니다. 인코딩과 디코딩 모두 브라우저에 내장된 기능으로 페이지 안에서 처리합니다. 기록하지도 저장하지도 전송하지도 않기 때문에, 토큰을 여기서 디코딩해도 안전합니다.
아닙니다. 이 점이 중요합니다. 인코딩일 뿐 암호가 아니어서 누구나 열쇠 없이 즉시 되돌릴 수 있습니다. base64 문자열을 비밀번호나 비밀 값을 숨기는 수단으로 여기지 마세요. 글자 집합만 바뀔 뿐 읽기 어려워지지 않습니다.
표준 base64는 + 와 / 를 쓰는데 주소 안에서 이 글자들은 다른 뜻을 가지고, = 채움 문자도 흔히 잘려 나갑니다. URL 안전 형식은 그 둘을 - 와 _ 로 적고 채움 문자를 빼기 때문에 질의 문자열, 경로, 파일 이름에 넣어도 값이 온전합니다. 디코딩할 때는 두 형식 모두 받습니다.
Base64는 3바이트를 4글자로 적기 때문에 결과가 약 33% 커지고, 줄바꿈이 들어가면 조금 더 늘어납니다. 그 여분이 이진 데이터를 텍스트만 다니는 통로로 보내기 위해 치르는 값입니다.
바이트가 올바른 UTF-8이 아니기 때문입니다. 이미지나 PDF처럼 이진 자료를 디코딩한 경우입니다. 파일 모드로 바꾸면 그 바이트를 화면에 보여 주는 대신 파일로 저장해 줍니다.