도구스개발

Base58 인코더 · 디코더

텍스트나 16진수를 Base58로 인코딩하고 되돌립니다. 비트코인 주소에 쓰는 Base58Check 체크섬 검증과 리플 알파벳도 지원합니다.

입력한 내용은 서버로 전송되지 않습니다.

Base58 결과

W678gLxM7t856DsGk6Ht3h

원본 바이트16 바이트
결과 길이22 글자
바이트당 글자 수1.375
16진수eb8f84eab5acec8aa420426173653538
헷갈리는 글자 넷을 뺀 것이 전부입니다. Base64 의 62자에서 숫자 0, 대문자 O, 대문자 I, 소문자 l 을 빼고 기호(+ /)도 빼서 58자가 됩니다. 사람이 눈으로 옮겨 적는 값 — 지갑 주소나 짧은 식별자 — 에 쓰라고 만든 것이라, 잘못 읽을 수 있는 글자를 아예 없앴습니다.0 O I l
앞쪽 0 바이트는 ‘1’ 로 옮겨집니다. 바이트 전체를 하나의 큰 정수로 보고 58 로 나누는 방식이라 앞의 0 이 사라져 버리므로, 0x00 한 바이트당 알파벳의 첫 글자를 하나씩 앞에 붙이는 규칙이 따로 있습니다. 비트코인 주소가 죄다 ‘1’ 로 시작하는 것이 버전 바이트 0x00 이 이렇게 옮겨진 결과입니다.
Base58Check 는 payload 를 SHA-256 으로 두 번 해시해 앞 4바이트를 뒤에 붙인 뒤 인코딩합니다. 한 글자만 잘못 옮겨 적어도 걸리며, 우연히 통과할 확률은 42억분의 1 입니다.

사용 방법

  1. 1인코딩할지 디코딩할지 고르고 값을 넣습니다.
  2. 2지갑 주소처럼 체크섬이 붙은 값이면 “Base58Check”를 고릅니다.
  3. 3결과를 복사하거나, 디코딩한 바이트와 체크섬 검증 결과를 확인합니다.

자주 묻는 질문

헷갈리는 글자를 뺀 것이 가장 큰 차이입니다. 숫자 0과 대문자 O, 대문자 I와 소문자 l을 빼고 기호(+, /)도 빼서 58자만 씁니다. 또 58은 2의 거듭제곱이 아니라 비트를 잘라 쓸 수 없어, 바이트 전체를 큰 정수로 보고 58로 나눕니다. 그래서 길이가 딱 떨어지지 않고 변환도 더 느립니다.

버전 바이트 0x00이 앞에 붙기 때문입니다. Base58은 값을 정수로 다뤄 앞의 0이 사라지므로, 0x00 한 바이트당 알파벳의 첫 글자인 1을 하나씩 앞에 붙이는 규칙이 따로 있습니다. 3으로 시작하는 주소는 버전 바이트가 0x05인 P2SH 주소입니다.

payload를 SHA-256으로 두 번 해시해 그 앞 4바이트를 뒤에 붙인 뒤 Base58로 인코딩하는 방식입니다. 한 글자라도 잘못 옮겨 적으면 체크섬이 어긋나 바로 걸립니다. 우연히 통과할 확률은 4바이트, 즉 42억분의 1입니다.

쓰는 글자 58개는 똑같지만 순서가 다릅니다. 리플(XRP)이 비트코인과 구별되도록 자기 순서를 정한 것이라, 같은 데이터라도 결과 문자열이 다릅니다. 비트코인 알파벳으로 리플 주소를 읽으면 엉뚱한 값이 나옵니다.

바이트당 약 1.366글자입니다(log 256 ÷ log 58). Base64가 1.333글자이므로 조금 더 길지만, 대신 헷갈리는 글자가 없고 더블클릭 한 번에 전체가 선택됩니다.

알아두면 좋은 점

  • 모든 변환은 브라우저 안에서 이루어지며 입력값이 서버로 전송되지 않습니다.
  • 주소의 체크섬이 맞는다고 해서 그 주소가 실제로 쓰이는 주소라는 뜻은 아닙니다.

함께 보면 좋은 도구

마지막 검증: 2026년 8월 30일 · 결과는 참고용 추정치입니다.