生成比特币地址

生成比特币地址_第1张图片
image
package main

import (
    "crypto/sha256"
    "golang.org/x/crypto/ripemd160"
    "fmt"
    "math/big"
    "encoding/hex"
)


//base58编码
var b58Alphabet = []byte("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")

func Base58Encode(input []byte) []byte{
    var result []byte

    x:= big.NewInt(0).SetBytes(input)

    base := big.NewInt(int64(len(b58Alphabet)))
    zero := big.NewInt(0)

    mod := &big.Int{}
    for x.Cmp(zero) != 0 {
        x.DivMod(x,base,mod)  // 对x取余数
        result =  append(result, b58Alphabet[mod.Int64()])
    }



    ReverseBytes(result)

    for _,b:=range input{

        if b ==0x00{
            result =  append([]byte{b58Alphabet[0]},result...)
        }else{
            break
        }
    }


    return result

}


//字节数组的反转
func ReverseBytes(data []byte){
    for i,j :=0,len(data) - 1;i

你可能感兴趣的:(生成比特币地址)