주요 콘텐츠로 건너뛰기
FreeOnlineTools Go
한국어
비교

Base64와 16진수 인코딩: 어느 것을 사용해야 합니까?

작성자: {author} · 2026-09-02에 업데이트됨

빠른 답변

크기가 중요한 경우(이메일 첨부 파일, 데이터 URLs, API 페이로드) Base64을 사용하세요. 가독성이 중요한 경우(디버깅, 해시 표시, 색상 코드, 메모리 주소) Hex를 사용하세요. Base64은 더 컴팩트합니다. Hex는 사람이 더 쉽게 검사할 수 있습니다.

소개

Base64 및 Hex(16진수)는 모두 이진-텍스트 인코딩 체계입니다. Base64은 3바이트를 4개의 ASCII 문자로 인코딩합니다(33% 오버헤드). 16진수는 1바이트를 2개의 ASCII 문자로 인코딩합니다(100% 오버헤드). 둘 다 텍스트 전용 컨텍스트에서 이진 데이터를 나타내는 데 사용되지만 효율성과 가독성이 크게 다릅니다.

단계별

  1. 인코딩 효율성 비교

    Base64: 3바이트 → 4자 = 33% 오버헤드. 16진수: 1바이트 → 2자 = 100% 오버헤드. 1KB의 데이터에 대해 Base64은 ~1.33KB를 생성합니다. 16진수는 2KB를 생성합니다. Base64은 동일한 이진 데이터에 대해 Hex보다 50% 작습니다.

  2. 가독성 비교

    16진수는 16개의 문자(0-9, A-F)를 사용하며 각각은 4비트를 나타냅니다. 바이트 값을 쉽게 읽을 수 있습니다. Base64은 각각 6비트를 나타내는 64자(A-Z, a-z, 0-9, +, /)를 사용합니다. Base64 출력은 바이트가 문자 경계를 넘어 분할되기 때문에 수동으로 검사하기가 더 어렵습니다.

  3. 사용 사례 비교

    Base64: 이메일 첨부 파일(MIME), 데이터 URLs, JWT 페이로드, API 바이너리 데이터 전송. 16진수: 해시 다이제스트(MD5, SHA-256), 색상 코드(#FF5733), 메모리 주소, MAC 주소, 바이너리 디버깅.

  4. 문자 집합과 안전성 비교

    Base64은 URL 안전하지 않은 + 및 /를 사용합니다. Hex는 0-9 및 A-F/a-f만 사용합니다. 항상 URL 안전하고 파일 이름이 안전합니다. Hex는 어떤 상황에서도 안전합니다. Base64에는 URL 안전 변형이 필요할 수 있습니다.

  5. 사용 사례에 따라 결정하세요.

    이메일, 데이터 URLs, JWT, API 페이로드: Base64(크기 중요). 해시 표시, 디버깅, 색상 코드, 메모리 주소: 16진수(가독성 문제).

예

Base64 및 Hex의 동일한 데이터

입력: Input: 'Hello' (5 bytes) Base64: SGVsbG8= (8 chars) Hex: 48656c6c6f (10 chars)

산출: Base64 is 20% smaller. Hex is easier to inspect (each pair = 1 byte).

일반적인 문제

  • Base64은 URL 안전하지 않습니다. 표준 Base64은 URLs 및 파일 이름을 분리하는 + 및 /를 사용합니다. 웹 컨텍스트에는 URL 안전 Base64(- 및 _)을 사용합니다.
  • Hex에는 100% 크기 오버헤드가 있습니다. Hex는 데이터 크기를 두 배로 늘립니다(1바이트 → 2자). 이는 대규모 바이너리 전송에 낭비입니다. 크기가 중요한 경우 Base64을 사용하세요.
  • Base64 패딩 모호성: Base64 추가 = 일부 시스템에서 제거하거나 거부하는 패딩 문자 — 인코딩 및 디코딩 측면 모두에서 일관되게 패딩을 처리합니다.
  • 16진수 대소문자 불일치: 일부 시스템에서는 대문자(A-F)를 사용하고 다른 시스템에서는 소문자(a-f)를 사용합니다. 잘못된 불일치를 방지하기 위해 비교하기 전에 대소문자를 정규화합니다.

팁

  • 크기가 중요한 이메일 첨부 파일, 데이터 URLs 및 API 페이로드에는 Base64을 사용하세요. Hex의 100%에 비해 오버헤드가 33%에 불과합니다.
  • 해시 다이제스트, 색상 코드, MAC 주소 및 사람의 가독성이 중요한 디버깅에는 Hex를 사용합니다. 각 바이트는 표시되는 2문자 쌍입니다.
  • URLs, 쿼리 매개변수 또는 파일 이름에서 바이너리 데이터를 인코딩할 때 URL 안전 Base64(+를 -로, /를 _로 교체, 스트립 =)을 사용하세요.
  • Base64과 Hex 간에 변환할 때는 항상 원시 바이너리로 먼저 디코딩한 다음 다시 인코딩하세요. 절대 문자 단위로 변환하지 마세요.

관련 도구

관련 가이드

참고자료