Base64 16진수 변환기

Base64를 붙여넣으면 같은 바이트를 16진수로 보여 줍니다. 해시 값을 비교하거나 키와 서명을 살펴볼 때, 도구마다 다른 형식으로 출력하는 지문을 서로 대조할 때 유용합니다.

브라우저에서만 실행되며 어떤 데이터도 업로드되지 않습니다.

사용 방법

  1. Base64 문자열을 입력란에 붙여넣습니다. ‘원본 형식’은 Base64, ‘대상 형식’은 16진수로 미리 선택되어 있습니다.
  2. 바이트마다 16진수 두 자리로 표시되는 결과를 확인합니다.
  3. 다른 형식이 필요하면 ‘대상 형식’을 Base58이나 Base32 등으로 바꾸고, 16진수를 다시 Base64로 변환하려면 ‘입력과 출력 바꾸기’를 누릅니다.
  4. 결과를 복사합니다.

같은 바이트를 표기하는 두 가지 방법

16진수와 Base64는 모두 바이너리 데이터를 텍스트로 표기하는 방식입니다. 16진수는 바이트마다 두 문자를 사용하므로 각 바이트 값을 읽고 비교하기 쉽습니다. Base64는 3바이트를 4문자에 담기 때문에 길이가 약 3분의 1 짧습니다. 둘 사이의 변환은 표기 방식만 바꿀 뿐 데이터 자체는 바뀌지 않습니다.

값바이트 수16진수 길이Base64 길이
MD5 해시163224
SHA-1 해시204028
SHA-256 해시, Ed25519 공개 키326444
SHA-384 해시489664
SHA-512 해시, Ed25519 서명6412888

16진수 편집기, 패킷 분석기, 디버거도 데이터를 16진수로 표시합니다. 따라서 Base64를 16진수로 바꾸면 이런 도구에 표시되는 내용과 나란히 대조할 수 있습니다.

Base64를 16진수로 바꿔야 하는 경우

  • 해시 비교. sha256sum 같은 도구는 16진수로 출력하지만, 하위 리소스 무결성(SRI) 속성, 콘텐츠 보안 정책(CSP) 해시, Content-MD5 같은 체크섬 헤더는 Base64를 사용합니다. 한쪽을 변환하면 둘을 바로 비교할 수 있습니다.
  • SSH 지문. ssh-keygen -l은 SHA256: 지문을 패딩 없는 Base64로 출력하지만, SSHFP DNS 레코드는 같은 SHA-256 다이제스트를 16진수로 저장합니다. SHA256: 뒤의 부분을 붙여넣으면 16진수 형식을 얻을 수 있습니다.
  • 키, IV, 서명. 암호화 코드를 디버깅할 때 바이트를 16진수로 보면 길이를 확인하고 값을 비교하며, 빠지거나 남는 바이트를 쉽게 찾을 수 있습니다.

변환기가 지원하는 입력

Base64 입력에 포함된 공백과 줄 바꿈은 무시되고, URL 안전 문자인 -와 _도 허용되며, = 패딩은 있어도 되고 없어도 됩니다. 따라서 JSON, JWT, 터미널 출력에서 복사한 값을 그대로 붙여넣을 수 있습니다. 변환은 디코딩된 바이트를 기준으로 이루어집니다. 즉 결과는 Base64 문자 자체가 아니라 데이터의 16진수입니다. 텍스트의 16진수 코드를 보려면 Base16 도구를 사용하십시오.

# 셸
printf '%s' "$B64" | base64 --decode | xxd -p

# Python
base64.b64decode(s).hex()

// Node.js
Buffer.from(s, 'base64').toString('hex')

자주 묻는 질문

Base64 텍스트 자체를 변환합니까, 아니면 Base64가 나타내는 바이트를 변환합니까?
바이트를 변환합니다. 먼저 Base64를 디코딩한 다음, 그 결과로 얻은 각 바이트를 16진수 두 자리로 표기합니다. Base64 문자열 자체의 문자 코드가 필요하다면 Base16 도구에서 텍스트로 인코딩하십시오.
16진수 출력이 Base64 입력보다 긴 이유는 무엇입니까?

16진수는 바이트당 2문자가 필요하지만 Base64는 약 1.33문자면 충분합니다. 32바이트 SHA-256 다이제스트는 Base64로는 44자, 16진수로는 64자입니다.

대문자 16진수나 콜론 구분자 형식은 어떻게 얻습니까?
16진수 숫자는 대소문자를 구분하지 않으므로 소문자 값과 대문자 값은 같습니다. 특정 형식이 필요하면 16진수를 Base16 인코더에 16진수 입력으로 붙여넣은 다음 대문자, 공백 또는 콜론 구분자, 0x 접두사를 선택하십시오.
JWT나 JSON Web Key의 Base64URL 값도 변환할 수 있습니까?

예. URL 안전 문자와 누락된 패딩을 자동으로 처리하므로 키 매개변수와 서명을 수정 없이 그대로 붙여넣으면 됩니다.