RUV CalculatorBase64 인코딩https://calc.ruvlabs.com/ko/c/base64

Base64 인코딩

텍스트와 Base64를 오간다

결과

자세한 내역
바이트

이 문자열의 Base64는?

SGVsbG8sIOyViOuFle2VmOyEuOyalA==

기본값으로 계산한 예시입니다. 위에서 값을 바꾸면 내 경우의 답이 나옵니다.

Base64는 암호가 아니라 표기법

Base64는 임의의 바이트를 A~Z, a~z, 0~9와 기호 두 개로만 적는 방식입니다. 3바이트를 6비트씩 넷으로 쪼개 각각 한 글자로 바꾸므로, 결과 길이는 원본의 약 4/3이 됩니다. 남는 자리는 끝에 등호를 붙여 채웁니다.

쓰는 이유는 텍스트만 통과하는 통로에 이진 데이터를 실어 보내기 위해서입니다. 메일 첨부, 웹페이지에 박아 넣는 이미지, HTTP 헤더에 담는 인증 정보가 대표적입니다. 중간 시스템이 바이트를 건드려 깨뜨리는 일을 막아 줍니다.

한글처럼 여러 바이트를 쓰는 문자는 먼저 UTF-8로 바뀐 뒤 인코딩됩니다. '안녕'은 6바이트이므로 Base64 결과는 8글자가 되고, 영문 6글자와 같은 길이가 나옵니다. 길이만 보고 원문 글자 수를 짐작하면 틀리는 이유입니다.

인코딩을 보안으로 착각하지 않기

Base64는 누구나 즉시 되돌릴 수 있습니다. 비밀번호나 토큰을 Base64로 적어 두는 것은 감추는 것이 아니라 읽기 불편하게 만드는 것뿐이고, 저장소나 로그에 남으면 그대로 노출됩니다. 감춰야 할 값에는 암호화나 해시를 써야 합니다.

URL에 Base64 결과를 그대로 넣으면 깨집니다. 표준 Base64가 쓰는 더하기와 빗금은 URL에서 다른 뜻을 가지므로, 웹 주소에 담을 때는 이를 대체 문자로 바꾼 URL-safe 변형을 써야 합니다.

디코딩이 실패하는 경우는 대부분 길이나 패딩 문제입니다. Base64 문자열의 길이는 4의 배수여야 하고, 복사하는 과정에서 줄바꿈이나 공백이 섞여 들어가면 파서가 거부합니다.

자주 묻는 질문

Base64가 암호화인가요?

아닙니다. 인코딩이지 암호화가 아닙니다. 누구나 되돌릴 수 있어 비밀을 지키는 용도로 쓸 수 없습니다. 바이너리 데이터를 텍스트만 다룰 수 있는 통로(이메일, JSON, URL)로 안전하게 보내기 위한 표현 방식입니다.

왜 크기가 늘어나나요?

3바이트를 4글자로 바꾸는 방식이라 약 33% 커집니다. 6비트씩 끊어 64가지 문자에 대응시키기 때문입니다. 이미지를 Base64로 HTML에 심으면 파일로 두는 것보다 커지는 이유가 이것입니다.

끝의 = 는 무엇인가요?

패딩입니다. 원본 길이가 3의 배수가 아닐 때 4글자 단위를 맞추려고 채워 넣습니다. 1바이트가 남으면 ==, 2바이트가 남으면 = 하나가 붙습니다.

계산은 이 브라우저에서 이루어집니다. 결과를 그대로 쓰기 전에 넣은 값을 한 번 확인하세요.