개발 문서나 설정 파일에서 V29ya1Rvb2xz 같은 알쏭달쏭한 문자열을 본 적이 있을 것입니다. 이것이 Base64로 인코딩된 텍스트입니다. Base64가 무엇이고 왜 쓰이는지, 그리고 흔한 오해인 '암호화'와의 차이를 이 글에서 정리합니다.
Base64란
Base64는 데이터를 영문 대소문자, 숫자, 그리고 몇 개의 기호(+, /)만으로 이뤄진 문자열로 바꾸는 인코딩 방식입니다. 이름의 '64'는 표현에 사용하는 문자가 64종이라는 뜻입니다.
핵심 목적은 아무 데이터나 텍스트로 안전하게 표현하는 것입니다. 이미지나 특수문자, 줄바꿈이 섞인 데이터를 텍스트만 취급하는 환경(이메일, 일부 설정 형식 등)에서 다루려면, 깨지지 않는 문자로 바꿔야 합니다. Base64가 그 역할을 합니다.
어떻게 작동하나
Base64는 데이터를 바이트 단위로 보고, 3바이트(24비트)를 6비트씩 네 조각으로 나눈 뒤 각 조각을 64종 문자 중 하나에 대응시킵니다. 그 결과 원본보다 길이가 약 3분의 4배로 늘어납니다. 즉 Base64는 데이터를 압축하는 것이 아니라 표현 방식을 바꾸는 것이며, 오히려 크기는 조금 커집니다.
Base64 변환기는 UTF-8 텍스트를 바이트로 바꿔 Base64로 인코딩하고, 반대로 Base64를 원문으로 디코딩합니다. 한글과 이모지도 UTF-8 기준으로 처리하므로 다국어 텍스트를 안전하게 다룰 수 있습니다. 예를 들어 WorkTools를 인코딩하면 V29ya1Rvb2xz가 됩니다.
Base64는 암호화가 아니다
가장 중요한 오해가 이것입니다. Base64는 보안 수단이 아닙니다. 인코딩 규칙이 공개돼 있어 누구나 즉시 원문으로 되돌릴 수 있기 때문입니다. 겉보기에 알아보기 어려운 문자열이라 암호처럼 느껴지지만, 실제로는 아무런 비밀도 지켜 주지 않습니다.
그래서 비밀번호나 토큰 같은 민감한 정보를 Base64로 '숨겼다'고 생각하면 안 됩니다. 그것은 잠그지 않은 상자에 넣어 둔 것과 같습니다. 진짜 보호가 필요하면 암호화를 써야 하며, Base64는 어디까지나 데이터를 텍스트로 '표현'하는 용도입니다.
언제 쓰나
Base64는 여러 곳에서 조용히 쓰입니다. 이메일에 파일을 첨부할 때 내부적으로 Base64로 변환되고, 웹페이지에 작은 이미지를 직접 심을 때(data URI), API에서 이진 데이터를 텍스트로 주고받을 때, 인증 헤더에 자격 정보를 담을 때 등입니다. 개발 과정에서는 짧은 텍스트 데이터를 변환해 테스트하거나, 받은 Base64 값의 원문을 확인할 때 유용합니다.
주의할 점
이 도구는 텍스트 변환용입니다. 이미지나 파일 전체를 처리하는 용도가 아니라, 짧은 텍스트를 인코딩·디코딩하는 데 적합합니다. 또 디코딩하려는 문자열이 유효한 Base64가 아니면 원문으로 되돌릴 수 없습니다. 변환은 브라우저 안에서만 이뤄지므로 데이터가 외부로 전송되지는 않지만, 앞서 말했듯 민감한 정보를 Base64로 보호하려 해서는 안 됩니다.
자주 묻는 질문
Q. Base64는 암호화인가요? 아니요. 누구나 복원할 수 있는 인코딩입니다. 보안이 필요하면 암호화를 사용하세요.
Q. 왜 원본보다 길어지나요? 3바이트를 4개의 문자로 표현하는 방식이라 크기가 약 3분의 4배로 늘어납니다. 압축이 아니라 표현 변환입니다.
Q. 한글도 변환되나요? 네. UTF-8 기준으로 처리해 한글과 이모지도 안전하게 인코딩·디코딩됩니다.
Q. 이미지 파일도 변환할 수 있나요? 이 도구는 텍스트 변환용입니다. 파일 전체를 다루는 용도가 아닙니다.
Base64는 데이터 표현 방식이며 보안 수단이 아니므로 민감한 정보 보호에 사용하지 마세요.