python编码解码教学_使用python进行BASE58编码解码

本文介绍了BASE58编码在比特币钱包地址中的应用,并提供了Python实现的编码解码函数示例。文章详细解释了编码解码过程,包括去除易混淆字符、避免分行和双击选择等设计目的。还展示了从ASCII到256进制再到BASE58的转换方法,以及比特币客户端中BASE58编码的特殊处理,如零字节前导压缩。
摘要由CSDN通过智能技术生成

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'))<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值