본문으로 건너뛰기
🛠️ToolsShed

Base58 인코더 / 디코더

Base58로 텍스트를 인코딩하거나 Base58 문자열을 디코딩합니다. 비트코인 주소 및 IPFS CID에 사용됩니다.

이 도구 소개

Base58은 원시 데이터를 58개의 영숫자 문자를 사용하여 사람이 읽을 수 있는 텍스트로 변환하는 이진-텍스트 인코딩 방식입니다. Base64와 달리 URL과 주소에서 혼동되거나 문제를 일으킬 수 있는 기호를 포함하지 않으며, 0(영), O(대문자 O), I(대문자 I), l(소문자 L)과 같은 문자를 제거하여 시각적 모호함을 피합니다. 이 인코딩은 특히 비트코인의 암호화폐 주소 보안과 분산 파일 시스템인 IPFS의 컨텐츠 식별자를 인코딩하는 데 널리 인식됩니다.

이 인코더를 사용하려면 텍스트나 원시 데이터를 입력 필드에 붙여넣고 인코드 버튼을 클릭하여 Base58 문자열을 생성하면 됩니다. 디코딩하려면 유효한 Base58 인코딩 문자열을 붙여넣고 디코드 버튼을 클릭하여 원본 데이터를 복구하면 됩니다. 이 도구는 브라우저 내에서 완전히 작동하며 모든 변환을 즉시 처리하며 외부 서버로 아무것도 전송하지 않습니다. 이는 블록체인 데이터, 콘텐츠 주소 지정 시스템, 또는 비트코인 주소, IPFS 해시 또는 기타 암호화 식별자를 확인해야 하는 애플리케이션으로 작업하는 개발자에게 특히 유용합니다.

Base58 인코딩은 암호화폐와 분산형 애플리케이션에서 특히 가치 있습니다. 주소를 수동으로 또는 종이 지갑을 통해 공유할 때 필기 오류를 줄일 수 있기 때문입니다. 시각적으로 유사한 문자를 제거하면 Base58 주소는 Base64와 비교하여 눈으로 읽고 검증하기가 훨씬 쉬워집니다. 블록체인 개발자, IPFS 노드를 관리하는 시스템 관리자, 또는 비트코인 주소가 어떻게 인코딩되는지에 대해 단순히 호기심을 가진 사람이든 이 도구는 Base58 인코딩과 디코딩을 투명하고 접근 가능하게 만듭니다.

자주 묻는 질문

코드 구현

import base58  # pip install base58

# Encode text to Base58
text = "Hello, World!"
encoded = base58.b58encode(text.encode()).decode()
print(encoded)  # JxF12TrwUP45BMd

# Decode Base58 back to text
decoded = base58.b58decode(encoded).decode()
print(decoded)  # Hello, World!

# Manual implementation without library
ALPHABET = b"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

def encode(data: bytes) -> str:
    num = int.from_bytes(data, "big")
    result = b""
    while num > 0:
        num, rem = divmod(num, 58)
        result = bytes([ALPHABET[rem]]) + result
    pad = len(data) - len(data.lstrip(b"\x00"))
    return (b"1" * pad + result).decode()

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.