Base58 编码器 / 解码器
将文本编码为Base58或解码Base58字符串。用于比特币地址和IPFS CID。
关于此工具
Base58是一种将原始数据转换为可读文本的二进制到文本编码方案,使用58个字母数字字符。与Base64不同,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.