用 PHP 处理 Base58

32 0

Base58 是一种用 58 个字母数字表示字节数据的编码,由比特币采用后流行。下面重点说明函数与示例。

用 PHP 处理 Base58

下面是 PHP 中处理Base58的常用写法:

// 使用 StephenHill/Base58 或 Bitcoin 相关库

运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。

示例

输入:<b>粗体</b>

编码结果:62iCpZ5HnF6XE9KNSq

说明:按 UTF-8 共 13 字节,使用比特币 Base58 字母表(不含 0、O、I、l)。

核心要点

  • 字母表:123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
  • 去掉 0/O/I/l 四个易混字符,也不含 +/
  • 前导零字节用字母 1 表示(比特币约定)
  • 没有填充字符
  • 常见变体:Bitcoin、Flickr,字母表顺序略有不同

Python 示例

下面是 Python 中处理Base58的常用写法:

# 以比特币字母表为例(也可用 bitcoin 或 base58 库)
ALPH = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
def b58encode(data):
    n = int.from_bytes(data, "big"); s = ""
    while n:
        n, r = divmod(n, 58); s = ALPH[r] + s
    return ALPH[0] * (len(data) - len(data.lstrip(b"\0"))) + s
print(b58encode(b"Hello"))  # 9Ajdvzr

运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。

本站的Base58编码工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。

常见问题

【开头很多 1 代表什么?】输入数据开头的零字节。每个 0x00 对应一个 1。

【和比特币地址是一回事吗?】地址是 Base58Check:在数据上加版本和校验后再做 Base58。

【能加密吗?】不能。

文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。

署名:123问编辑部 · 最近修订:2026-11-11 · 已按编辑与审核说明检查;内容仅供参考,不构成医疗、法律或投资建议。发现错误可查看纠错方式。

标签: 数码开发

抱歉,评论功能暂时关闭!