PC·모바일 문제 해결

Base64는 암호화가 아닙니다: 실제로 무엇을 하는 걸까?

Base64는 암호화가 아니라 인코딩입니다. 비밀번호를 숨기지 못하고, 용량이 커지는 이유와 디코드 방법을 알아보세요.

빠른 답

Base64는 암호화가 아니라 인코딩입니다. 바이너리 데이터를 텍스트 중심 시스템이 저장하거나 보낼 수 있는 텍스트 형태로 바꿉니다.

Base64 텍스트를 가진 사람은 보통 그대로 디코드할 수 있습니다. 비밀번호나 비밀 키가 필요 없습니다.

비밀번호, API 키, 액세스 토큰, 비공개 메시지, 그 밖의 비밀을 보호하는 용도로 Base64를 쓰지 마세요. 표현 도구이지 보안 장치가 아닙니다.

문자열이 알아볼 수 없게 보인다고 암호화된 것은 아닙니다. Base64는 바이트를 텍스트로 쓰는 방식만 바꿉니다.

Base64는 실제로 무엇을 하나요?

Base64는 바이너리 데이터를 제한된 ASCII 집합으로 인코딩합니다. A–Z, a–z, 0–9, +, / 입니다. 출력 길이를 4의 배수로 맞추려고 = 패딩이 붙을 수 있습니다. 패딩이 항상 있는 것은 아닙니다. 짧은 입력은 =가 하나 또는 두 개일 수 있고, 어떤 형식은 생략합니다.

Hello

Hello

Base64

SGVsbG8=

SGVsbG8=를 디코드하면 다시 Hello가 됩니다. 이 왕복에는 키가 필요 없습니다.

  • 원본 데이터
  • Hello
  • Base64 인코드
  • SGVsbG8=
  • Base64 디코드
  • Hello
Base64는 디코드로 되돌릴 수 있습니다. 텍스트만 있으면 보통 누구나 할 수 있습니다.

Base64와 암호화는 무엇이 다른가?

Base64는 표현과 호환이 목적입니다. 내용을 숨기지 않습니다. 암호화는 기밀성을 위한 것이며 암호학적 키 재료를 사용합니다. Base64 디코드는 복호화가 아닙니다. 공개키 체계도 키를 씁니다. “모든 암호화는 하나의 공유 비밀이 필요하다”가 아니라 “적절한 암호학적 키”라고 말하는 것이 맞습니다. 해싱은 세 번째 개념입니다. 되돌릴 수 있는 인코딩이 아니라 다이제스트입니다.

  • 인코딩
  • 비밀 키 없음
  • 누구나 되돌릴 수 있음
  • 암호화
  • 암호학적 보호
  • 복호화에는 맞는 키가 필요
인코딩은 표현을 바꿉니다. 암호화는 내용을 기밀로 두는 것이 목표입니다.

서로 다른 세 가지 역할:

방법 주요 목적 비밀 필요
Base64 데이터를 텍스트로 인코딩 없음
암호화 기밀성 보호 있음 / 키 재료
해싱 일방향 다이제스트 복호화 없음

Base64는 안전한가?

Base64 자체는 기밀성을 제공하지 않습니다. 텍스트가 난해해 보여도 보안 기능이 아닙니다. 일반 디코더로 바이트를 되돌릴 수 있습니다. 그렇다고 기술로서 “Base64가 불안전하다”는 뜻은 아닙니다. 정상적인 인코딩입니다. 보안 장치가 아닐 뿐입니다. 보안은 주변 시스템과 통제에 달려 있습니다.

비밀번호나 API 키를 Base64로 숨겨도 되나?

보호 수단으로는 안 됩니다. 비밀번호, API 키, 액세스 토큰, 비공개 데이터를 Base64로 인코딩해도 보호되지 않습니다. 인코딩된 문자열을 얻은 사람은 보통 디코드할 수 있습니다. 기밀이 필요하면 실제 비밀 저장과 암호화를 쓰세요.

암호화가 아닌데 왜 Base64를 쓰나?

텍스트를 기대하는 시스템은 원본 바이너리를 그대로 다루지 못하는 경우가 많습니다. Base64는 텍스트 형식에 바이너리를 넣고, 작은 바이너리 자원을 텍스트에 넣고, 텍스트 전용 채널로 바이트를 옮기고, Data URL을 만들고, 일부 이메일/MIME 맥락에 쓰이며, 스키마가 Base64를 요구할 때 API 페이로드를 채웁니다. API가 보안 때문에 Base64를 쓰는 것은 아닙니다. 호환 때문입니다.

왜 Base64는 데이터가 커지나?

표준 패딩 Base64는 입력 3바이트를 문자 4개로 만듭니다. 길이는 4 × ceil(n / 3)이고, n은 입력 바이트 수입니다. 3바이트는 4문자, 6바이트는 8문자가 됩니다. 큰 원본 페이로드에서는 대략 33%, 약 3분의 1이 늘어납니다. 작은 입력은 패딩 때문에 비율이 달라 보일 수 있습니다. 1바이트는 QQ== (4문자)입니다. JSON 따옴표, Data URL 접두사, 압축, 추가 전송 인코딩이 있으면 실제 저장·전송 크기는 더 달라질 수 있습니다. Base64는 데이터를 압축하지 않습니다.

Base64URL이란?

Base64URL은 같은 인코딩의 URL·파일 이름에 안전한 변형입니다. 암호화가 아닙니다. +는 -, /는 _가 되고 패딩은 자주 생략됩니다. Base64 인코딩는 표준 Base64와 Base64URL을 모두 인코드·디코드할 수 있습니다. 패딩 규칙은 명세에 따라 다릅니다. 이 도구는 JWT 디코더가 아닙니다.

이미지나 파일도 Base64로 인코딩할 수 있나?

가능합니다. 이미지, PDF, 그 밖의 바이너리 파일을 Base64 텍스트로 만들 수 있습니다. Base64는 그 파일을 압축하지 않습니다. 인코딩된 텍스트는 보통 원본 바이트보다 큽니다.

Base64 Data URL이란?

Data URL은 미디어 타입, 인코딩 표시, 인코딩된 바이트를 한 문자열에 담을 수 있습니다.

data:image/png;base64,...

작은 자산에는 편합니다. 큰 파일을 Data URL에 넣는 것이 항상 좋은 방법은 아닙니다. 문자열이 커지고 페이지가 느려질 수 있습니다. 기본값이 아니라 트레이드오프로 보세요.

인코딩, 암호화, 해싱

인코딩(Base64 포함)은 표현이 목적이고 비밀 없이 되돌릴 수 있습니다. 암호화는 기밀성이 목적이고 암호학적 키 재료가 관여합니다. 해싱은 대체로 일방향으로 설계된 다이제스트를 만듭니다. 출력 길이는 알고리즘마다 다릅니다. SHA-256과 SHA-512는 길이가 같지 않습니다. 해시 만들기로 그 다이제스트를 볼 수 있습니다. Base64를 대신하는 암호화나 인코딩은 아닙니다.

흔한 Base64 실수

Base64를 암호화로 착각
바이트가 텍스트로 어떻게 보이는지만 바꿉니다.

비밀을 그냥 Base64로 저장
값을 가진 사람은 디코드할 수 있습니다.

Base64가 압축한다고 생각
압축하지 않습니다. 텍스트 형태는 보통 더 큽니다.

용량 증가를 잊음
큰 원본 페이로드는 대략 3분의 1을 더 잡으세요.

Base64와 Base64URL을 혼동
알파벳이 다릅니다. 잘못된 변형은 디코더가 거절할 수 있습니다.

잘못된 문자 인코딩으로 디코드
Base64는 바이트를 되돌립니다. 텍스트는 맞는 인코딩, 보통 UTF-8이 필요합니다.

=가 항상 있다고 생각
패딩은 필요할 때 씁니다. 없는 문자열도 있습니다.

유니코드 텍스트에서 Base64가 꼬이는 이유는?

Base64는 문자가 아니라 바이트를 다룹니다. 텍스트는 먼저 바이트가 되어야 하고, 보통 UTF-8입니다. 한국어, 일본어, 아랍어, 이모지는 이 단계가 필요합니다. 브라우저 btoa()를 유니코드 문자열에 바로 쓰면 실패할 수 있습니다. Base64 인코딩는 UTF-8 바이트를 인코딩하므로 그 텍스트가 왕복합니다. 문자 집합을 잘못 디코드하면 Base64는 유효해도 글자가 깨져 보일 수 있습니다.

자물쇠가 아닙니다

Base64는 기밀성을 제공하지 않습니다. 인코딩된 값을 가진 사람은 보통 디코드할 수 있습니다. 난해해 보이는 텍스트를 보호된 비밀로 보지 마세요.

브라우저에서 Base64 인코드·디코드

NEXNARA Base64 인코딩는 UTF-8 텍스트와 파일을 이 기기에서 변환합니다.

표준 Base64와 Base64URL을 인코드·디코드하고, 파일을 raw Base64 또는 Data URL로 만들고, Base64나 Data URL을 다시 다운로드로 바꿀 수 있습니다. 잘못된 입력은 중단되지 않고 거절됩니다. 공백은 무시되고, 빠진 패딩은 채웁니다.

10 MB보다 큰 파일은 탭이 느려질 수 있습니다. 32 MB보다 큰 파일은 브라우저에서 처리하지 않습니다.

Base64 처리 자체는 브라우저에서 이루어집니다. 이 도구에서는 텍스트나 파일이 NEXNARA 서버로 전송되지 않습니다. 광고와 다른 사이트 기능은 네트워크를 쓰며, 이는 처리와 별개입니다.

Base64를 인코드하거나 디코드하려면 Base64 인코딩를 열고 텍스트를 붙이거나 파일을 놓으세요.

FAQ

Base64는 암호화인가요?

아닙니다. Base64는 인코딩입니다. 표현만 바꿉니다. 기밀성을 보호하지 않습니다.

Base64는 안전한가요?

Base64는 보안 장치가 아닙니다. 정상적인 인코딩입니다. 텍스트를 가진 사람은 보통 디코드할 수 있습니다. 보안은 나머지 시스템에 달려 있습니다.

비밀번호 없이 Base64를 디코드할 수 있나요?

있습니다. 표준 디코더면 충분합니다. Base64 자체에는 비밀번호나 비밀 키가 필요 없습니다.

왜 Base64는 파일 크기가 커지나요?

표준 패딩 Base64에서는 3바이트가 문자 4개가 됩니다. 길이는 4 × ceil(n / 3)입니다. 큰 원본 페이로드는 대략 33% 늘어납니다. 아주 작은 입력은 패딩 때문에 비율이 달라질 수 있습니다.

Base64와 Base64URL의 차이는 무엇인가요?

Base64URL은 +와 / 대신 -와 _를 쓰고, = 패딩을 자주 뺍니다. 둘 다 인코딩입니다. Base64 인코딩는 두 알파벳을 지원합니다.

이미지나 파일도 Base64로 인코딩할 수 있나요?

있습니다. 결과는 텍스트이지 더 작은 파일이 아닙니다. Base64 인코딩의 파일 모드에서 raw Base64 또는 Data URL을 만드세요. 파일은 브라우저에 남습니다.