Hex 인코더/디코더
16진수(hex) 인코딩은 16개의 기호(0-9 및 A-F)를 사용하여 바이너리 데이터를 표현합니다. 각 바이트는 두 개의 hex 문자가 됩니다. 이 도구는 hex 문자열을 디코딩하여 원본 콘텐츠를 확인하고, 매직 바이트를 사용하여 파일 유형을 식별하며, 바이너리 검사를 위한 hex 편집기 스타일 뷰어를 제공합니다.
주요 사용 사례
- API 및 로그의 hex 인코딩된 데이터 디코딩
- 바이너리 파일 헤더 및 매직 바이트 검사
- 네트워크 패킷 페이로드 분석
- 암호화 값 디버깅 (해시, 키, IV)
- 데이터베이스 또는 파일의 원시 바이너리 데이터 보기
- 디버깅 도구의 hex 덤프 변환
기능
- 여러 형식의 hex 문자열 디코딩 (일반, 공백 구분, 0x 접두사, 콜론 구분, C-배열)
- 오프셋, hex 바이트, ASCII 표현이 포함된 Hex 뷰어
- 디코딩된 콘텐츠 유형 자동 감지 (JSON, XML, 텍스트 등)
- 체인 감지 — "X로 디코딩" 버튼으로 디코딩된 콘텐츠 자동 감지
- 바이너리 데이터의 매직 바이트를 사용한 파일 유형 식별
- 지연 청크 로딩이 있는 대용량 파일용 가상 스크롤링
- hex 형식 간 변환 (일반, 공백 구분, 0x, 콜론, C-배열)
- 텍스트를 다양한 형식의 hex로 인코딩
예제
팁
- Hex 인코딩은 데이터 크기를 두 배로 만듭니다 (각 바이트가 2문자가 됨).
- 일반적인 매직 바이트: PDF는 25504446(%PDF)으로, ZIP은 504B0304로 시작합니다.
- 이미지 데이터(PNG, JPEG 등)는 자동 감지되어 이미지 분석기 도구를 사용합니다.
- 0x 접두사는 대부분의 프로그래밍 언어에서 16진수를 나타냅니다.
- MAC 주소와 UUID는 콜론 또는 하이픈 구분자를 사용합니다.
- Hex는 대소문자를 구분하지 않습니다: 0xFF와 0xff는 동일합니다.
이해하기 Hex 인코더/디코더
16진수(hex) 인코딩은 바이너리 데이터를 16진법 표기로 표현하며, 각 바이트가 0-9 및 A-F 집합의 정확히 두 문자에 매핑됩니다. 이 직접적인 바이트-텍스트 매핑은 hex를 디버깅, 암호화, 네트워킹, 저수준 프로그래밍에서 바이너리 데이터의 표준 표현으로 만듭니다.
6비트 그룹으로 바이트 경계를 모호하게 만드는 Base64와 달리, 각 hex 문자 쌍은 정확히 하나의 바이트에 매핑되어 개별 값을 읽기가 쉽습니다. 메모리 주소, 레지스터 내용, 네트워크 패킷 덤프, 파일 헤더, 암호화 값은 모두 관례적으로 hex로 표시됩니다.
Hex 문자열은 여러 형식으로 나타납니다. 일반 hex(48656c6c6f)는 API에서 흔합니다. 공백 구분 hex(48 65 6c 6c 6f)는 패킷 캡처에 나타납니다. 콜론 구분 hex(48:65:6c:6c:6f)는 MAC 주소와 인증서 지문에 사용됩니다. 0x 접두사(0x48, 0x65)는 C, JavaScript, Python 및 대부분의 언어에서 표준 hex 리터럴입니다. C 스타일 배열({0x48, 0x65})은 소스 코드에 바이너리 데이터를 삽입합니다.
파일 유형 식별은 매직 바이트에 의존합니다. 파일 시작 부분의 특정 hex 시퀀스가 형식을 식별합니다. PDF는 25504446(%PDF)으로, PNG는 89504E47로, ZIP은 504B0304로, ELF 실행 파일은 7F454C46으로 시작합니다. 이러한 서명을 인식하는 것은 파일 처리 코드 디버깅과 바이너리 데이터 분석에 필수적입니다.
Hex와 Base64 모두 바이너리 데이터를 텍스트로 인코딩하지만 서로 다른 절충을 합니다. Hex는 각 바이트를 2문자에 매핑하여 데이터 크기를 두 배로 만들고(100% 오버헤드), Base64는 3바이트를 4문자에 매핑하여 약 33%의 오버헤드만 발생합니다. Base64는 대용량 데이터에 더 공간 효율적이어서 텍스트 형식에 바이너리 콘텐츠를 삽입하는 데 더 좋은 선택입니다. Hex는 바이트 수준 검사에 더 읽기 쉬워서 개별 바이트 값이 중요한 디버깅, 암호화 값, 프로토콜 분석의 표준입니다.
매직 바이트(파일 서명이라고도 함)는 파일 확장자와 관계없이 형식을 식별하는 파일의 맨 처음에 있는 특정 바이트 시퀀스입니다. PNG 파일은 89 50 4E 47로, JPEG는 FF D8 FF로, ZIP은 50 4B 03 04로 시작합니다. Unix "file" 명령은 매직 바이트에 의존하여 파일 유형을 감지하며, 이 도구에서도 hex 데이터 내의 바이너리 콘텐츠를 식별하는 데 동일한 기술이 사용됩니다.
Hex는 대소문자를 구분하지 않습니다. 숫자 A-F는 대문자든 소문자든 값 10-15를 나타내기 때문입니다. 0xFF와 0xff는 모두 십진수 255를 의미합니다. 대소문자 선택은 순전히 관례입니다: 대문자는 사양과 해시 출력에서 흔하고, 소문자는 CSS 색상과 URL 인코딩 같은 웹 개발 환경에서 흔합니다. 0x 접두사는 C, C++, Java, JavaScript, Python, Go, Rust를 포함한 대부분의 프로그래밍 언어에서 16진수 리터럴을 나타냅니다. 접두사 없이는 "10" 같은 값이 십진수와 16진수 사이에서 모호합니다. 0x10으로 쓰면 명확하게 16진수(십진수 16)임을 나타냅니다.