5️⃣ Base58 编码器
编码和解码 Base58(比特币风格)。使用 58 字符字母表,去除 0、O、I、l 以避免混淆。
关于 Base58
Base58 是一种二进制到文本的编码方案,由比特币推广使用。它使用 58 字符字母表,省略了在某些字体中容易混淆的字符:0(零)、O(大写 o)、I(大写 i)和 l(小写 L)。这让编码后的输出更适合人工阅读和手动输入。与 Base64 不同,Base58 没有填充字符,也没有特殊字符,因此非常适合用于 URL、ID 和短标识符。本工具完全在浏览器中运行——不会上传任何数据。
工作原理
- 编码 —— 输入字节被解释为大端整数,并反复除以 58。余数映射到字母表中的字符,前导零字节变为前导 '1' 字符。
- 解码 —— 每个字符转换为其索引值,乘入累加总数,结果再转换回字节。前导 '1' 字符变为前导零字节。
- 字母表为
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz(不含 0、O、I、l)。 - 编码作用于原始字节,因此 UTF-8 多字节字符会产生更长的 Base58 输出。
使用场景
- 编码比特币地址、公钥和其他区块链标识符。
- 生成紧凑、人类友好的 ID,用于短链接和 IPFS 内容标识。
- 在 URL 中表示二进制数据,无需使用 URL 不安全字符。
- 显示用户可能手动输入的带校验和标识符。
常见问题
为什么 Base58 去除 0、O、I、l? 这些字符在许多字体中容易与彼此或与 1 混淆,导致输入错误。去除它们让 Base58 更适合手动输入。
Base58 比 Base64 更紧凑吗? 不是,对于相同输入,Base58 输出比 Base64 略长。Base58 用紧凑性换取了可读性。
为什么前导 '1' 字符是特殊的? 输入中的每个前导零字节在输出中保留为 '1',因此编码和解码可以正确往返,即使输入以零字节开头。
这个工具会上传我的文本吗? 不会。所有编码和解码都在本地浏览器中完成。