Перейти к содержимому

Кодировщик / Декодировщик Base58

Кодируйте текст в Base58 или декодируйте Base58-строки. Используется в адресах Bitcoin и CID IPFS.

Об этом инструменте

Base58 — это схема кодирования из двоичного в текст, которая преобразует необработанные данные в читаемую для человека строку, используя 58 буквенно-цифровых символов. В отличие от Base64, который включает символы, которые могут быть неоднозначными или проблемными в URL-адресах и адресах, Base58 удаляет символы, такие как 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.