Base58 是一种用 58 个字母数字表示字节数据的编码,由比特币采用后流行。下面重点说明浏览器与 Node 写法。
用 JavaScript 处理 Base58
下面是 JavaScript 中处理Base58的常用写法:
// 使用 bs58 等库:bs58.encode(new TextEncoder().encode("Hello"))运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
示例
输入:https://www.123wen.cn/?q=测试
编码结果:2bP4pJr4wVin8K5UzLTBvjiUHK8ydeqHt8CPAPeiVJL
说明:按 UTF-8 共 31 字节,使用比特币 Base58 字母表(不含 0、O、I、l)。
与相关技术的区别
与 Base64 相比更短的优势不明显,但去掉了易混字符和符号。与 Base32 相比更紧凑,可是大小写都用,朗读不如 Base32 清晰。它同样不能当加密用。
Go 示例
下面是 Go 中处理Base58的常用写法:
import "github.com/btcsuite/btcutil/base58"
base58.Encode([]byte("Hello"))运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
本站的Base58编码工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【为什么没有 0?】避免和字母 O 混淆;字母 I 和 l 也被去掉。
【开头很多 1 代表什么?】输入数据开头的零字节。每个 0x00 对应一个 1。
【和比特币地址是一回事吗?】地址是 Base58Check:在数据上加版本和校验后再做 Base58。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
标签: 数码开发