base58是比特币钱包地址编码的方式,便于阅读与识别。wiki上的说明:
相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号。
设计Base58主要的目的是:
1.避免混淆。在某些字体下,数字0和字母大写O,以及字母大写I和字母小写l会非常相似。
2.不使用"+"和"/"的原因是非字母或数字的字符串作为帐号较难被接受。
3.没有标点符号,通常不会被从中间分行。
4.大部分的软件支持双击选择整个字符串。
这是Davanum Srinivas的一段代码:
b58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
def base58encode(n):
result = ''
while n > 0:
result = b58[n%58] + result
n /= 58
return result
def base256decode(s):
result = 0
for c in s:
result = result * 256 + ord(c)
return result比如要编码字符‘a'
print base58encode(base256decode('a'))<