Base58编码解码Go实现

Base58是一种用于将大整数转换为可视字符串的算法,避免使用易混淆的字符。本文介绍了Base58编码的流程,并提供了Go语言的实现细节。
摘要由CSDN通过智能技术生成

base58和base64一样是一种二进制转可视字符串的算法,主要用来转换大整数值。区别是,转换出来的字符串,去除了几个看起来会产生歧义的字符,如 0 (零), O (大写字母O), I (大写的字母i) and l (小写的字母L) ,和几个影响双击选择的字符,如/, +。

结果字符集正好58个字符(包括9个数字,24个大写字母,25个小写字母)。

编码流程 (本质为大数与字符串的转化)

  1. 输入为bytes,比如:[0x00, 0xFF]

  2. 忽略前面的0x00得到数字256

  3. 256通过base58编码为字符串”5Q”,因为要处理0x00,所以得到字符串”15Q”

  4. 把字符串“15Q”转化为bytes: [0x49, 0x53, 0x81]

实现

package main

import (
    "bytes"
    "math/big"
)

var b58Alphabet = []byte("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz&#
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值