数据安全提示: 所有文本数据均在您的浏览器本地处理,不会上传到服务器。
Base58转换工具
Bitcoin 变体
当前操作:文本 → Base58编码 (Bitcoin变体)
输入文本
字符数: 0
字节数: 0
转换结果
转换结果将显示在这里...
等待输入...
长度: 0
比特币创世地址:
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
使用示例
"Hello" → Base58
9Ajdvzr
"Bitcoin" → Base58
4tM9Q2Dm
"1234567890" → Base58
3mJ7ctR
"9Ajdvzr" → 解码
Hello
Base58算法原理
Base58字符集 (Bitcoin变体)
去除了易混淆字符:0, O, I, l
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
G
H
J
K
L
M
N
P
Q
R
S
T
U
V
W
X
Y
Z
a
b
c
d
e
f
g
h
i
j
k
m
n
o
p
q
r
s
t
u
v
w
x
y
z
编码过程示例 ("Hello")
| 步骤 | 说明 | 过程 | 结果 |
|---|---|---|---|
| 1 | 获取字节数组 | "Hello" → [72,101,108,108,111] | 5字节 |
| 2 | 转换为大整数 | 72×256⁴ + ... | 310939249775 |
| 3 | 除以58取余 | 重复取余映射字符集 | 9Ajdvzr |
原理详解
// Base58编码伪代码 (Bitcoin变体)
const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
let bigInt = bytesToBigInt(inputBytes);
let result = "";
while (bigInt > 0) {
remainder = bigInt % 58;
result = ALPHABET[remainder] + result;
bigInt = floor(bigInt / 58);
}
// 处理前导零字节
for (let i=0; i<inputBytes.length && inputBytes[i]==0; i++)
result = ALPHABET[0] + result;
Base58变体介绍
Bitcoin
标准加密货币变体,字符集以"123456789A..."开头
Flickr
用于短URL,字符集以"123456789a..."开头
Ripple
Ripple地址专用,字符集顺序不同
| 变体 | 移出字符 | 典型应用 |
|---|---|---|
| Bitcoin | 0, O, I, l | 比特币地址 |
| Flickr | 0, O, I, l | 短链接 |
| Ripple | 0, O, I, l | 瑞波币地址 |
Base58应用场景
- 加密货币地址 – 比特币、莱特币等使用Base58Check编码
- 短链接服务 – Flickr等使用Base58生成短URL,避免混淆
- 唯一标识符 – 订单号、用户ID,易读且无歧义
- URL安全 – 不含+ / 等特殊字符,适合嵌入URL