파일 업로드
  1. base64hub
  2. 기타 진법
  3. Base64 → Hex

Base64 Hex 변환기: 원시 바이트 살펴보기

Base64를 붙여넣으면 디코딩된 바이트를 hex로 볼 수 있습니다. 소문자나 대문자, :나 0x 같은 구분자를 고르고, 읽기 쉬운 덤프가 필요하면 줄당 16 또는 32바이트로 설정하세요.

무료 가입 없음, 제한 없음 로컬 업로드 없음 16 또는 32 읽기 쉬운 덤프를 위한 줄당 바이트 수 업데이트 2026. 10. 27.
입력 0바이트 0 B출력 0

브라우저에서 처리됩니다. 이 페이지는 데이터를 어디로도 보낼 수 없습니다 – 확인 방법

Base64를 hex로 변환하는 방법

  1. 입력 · Base64에 Base64를 붙여넣으세요. 줄 바꿈, 공백, 누락된 = 패딩, URL-safe 문자를 모두 받습니다.
  2. 출력 · Hex에 바이트가 나타납니다. 바이트가 알려진 형식과 일치하면 상태 표시줄에 감지된 파일 형식이 표시됩니다.
  3. 출력 아래에서 대소문자, 구분자, 줄당 바이트 수를 고르세요.
  4. 출력 복사를 누르거나 hex를 다운로드하세요. 바이트 저장은 디코딩된 바이트 자체를 파일로 씁니다.

반대 방향은 Hex → Base64 전환이나 Hex를 Base64로를 사용하세요.

출력 옵션

Base64 SGkh/w==는 4바이트를 담고 있습니다. 구분자 설정에 따라 다음과 같이 쓰입니다.

구분자출력용도
없음486921ffsha256sum 출력, 데이터베이스, URL과 비교
공백48 69 21 ff바이트 단위로 읽기, hex 편집기
:48:69:21:ff인증서와 키 지문
0x0x48 0x69 0x21 0xffC, C#, Java 상수
\x\x48\x69\x21\xffPython, C, 셸의 문자열 리터럴

대소문자를 바꾸면 48 69 21 FF가 됩니다. 줄당 바이트 수를 16으로 설정하면 한 행에 16바이트씩 익숙한 덤프 형태가 되어, 오프셋 0x40을 찾거나 헤더 길이를 세기 쉬워집니다.

첫 바이트 읽기

대부분의 파일 형식은 고정된 시그니처로 시작하며, hex로 보면 이런 시그니처를 쉽게 알아볼 수 있습니다. 몇 가지 Base64 접두사와 디코딩 결과는 다음과 같습니다.

Base64 시작 부분Hex형식
iVBORw0KGgo89 50 4e 47 0d 0a 1a 0aPNG
/9j/ff d8 ffJPEG
JVBERi025 50 44 46 2d (%PDF-)PDF
UEsDBA50 4b 03 04 (PK)ZIP 및 DOCX, XLSX, JAR, APK
H4sI1f 8b 08gzip

첫 바이트가 이 중 어느 것과도 맞지 않는다면, 예상치 못한 문자 인코딩의 텍스트이거나 hex로 보면 균일하게 랜덤해 보이는 암호화된 데이터일 수 있습니다. 자주 보는 Base64 접두사 목록에 훨씬 많은 예가 있습니다. 데이터가 열어 보고 싶은 파일로 밝혀지면 Base64를 파일로에서 미리 보고 저장할 수 있습니다.

다이제스트와 체크섬 비교하기

체크섬 도구는 hex로 출력하므로, 헤더나 설정 파일의 값을 직접 실행한 md5sum이나 sha256sum과 비교하려면 Base64를 hex로 바꾸면 됩니다.

보이는 곳Base64Hex
hello의 Content-MD5 헤더XUFAKrxLKna5cZ2REBfFkg==5d41402abc4b2a76b9719d911017c592
hello의 SHA-256LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

integrity="sha384-…" 속성, SHA256: 형식의 SSH 지문(패딩 없는 Base64), JSON 안의 바이너리 키도 마찬가지입니다. 두 값이 hex로 다르면 바이트가 다른 것이고, 같다면 Base64의 차이는 패딩이나 URL-safe 알파벳 같은 표기 차이일 뿐입니다.

코드에서 Base64를 hex로

import base64
base64.b64decode("SGkh/w==").hex()        # '486921ff'
base64.b64decode("SGkh/w==").hex(" ")     # '48 69 21 ff'
Buffer.from("SGkh/w==", "base64").toString("hex");   // '486921ff'

Python의 b64decode는 validate=True를 넘기지 않으면 알파벳 밖의 문자를 조용히 버리므로, URL-safe 문자열이 오류 없이 엉뚱한 바이트로 디코딩될 수 있습니다. Node의 "base64" 디코더는 두 알파벳을 모두 받습니다. 자세한 내용은 Python과 Node.js 페이지를 참고하세요.

자주 묻는 질문

Linux에서 Base64를 hex로 디코딩하려면 어떻게 하나요?

echo 'SGkh/w==' | base64 -d | xxd -p를 실행하면 486921ff가 출력됩니다. xxd -p는 30바이트마다 줄을 바꾸므로, 줄당 32바이트로 하려면 -c 32를 붙이고, xxd가 없다면 od -An -tx1을 쓰세요.

hex에 ef bf bd가 들어 있는 이유는 무엇인가요?

이 세 바이트는 대체 문자 �의 UTF-8 형태입니다. 어떤 도구가 Base64를 먼저 텍스트로 디코딩하면서 올바른 UTF-8이 아닌 바이트를 모두 바꿔 버린 것입니다. 이 페이지처럼 바로 hex로 디코딩하면 원래 바이트가 그대로 나옵니다.

hex는 Base64에 비해 얼마나 긴가요?

약 1.5배입니다. Base64 네 글자는 3바이트를 담고, 3바이트는 hex 숫자 여섯 자리가 됩니다. 44자짜리 SHA-256 값은 hex 64자리가 됩니다.

Base64URL과 data URI도 받나요?

네. -와 _는 +와 /처럼 읽고, 누락된 패딩도 괜찮으며, data:...;base64, 접두사는 건너뜁니다.