杂项与密码基础
1.base58及多重编码
Base58是用于Bitcoin中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。 相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及" "和"/"符号。
设计Base58主要的目的是: • 避免混淆。在某些字体下,数字0和字母大写O,以及字母大写I和字母小写l会非常相似 • 不使用" "和"/"的原因是非字母或数字的字符串作为帐号较难被接受。 • 没有标点符号,通常不会被从中间分行。 大部分的软件支持双击选择整个字符串。
代码语言:javascript复制__b58chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
__b58base = len(__b58chars)
def b58encode(v):
long_value = int(v.encode("hex_codec"), 16)
result = ''
while long_value >= __b58base:
div, mod = divmod(long_value, __b58base)
result = __b58chars[mod] result
long_value = div
result = __b58chars[long_value] result
nPad = 0
for c in v:
if c == '