如何在 Bash 中将十进制数转换为 Base58

Eli*_*ley 2 bash base-conversion

myNumber=$(date +%s) # big number in decimal
myNumberInB58=$(toBase58 $myNumber)

toBase58() {
  # <your answer here>
}
Run Code Online (Sandbox Code Playgroud)

Base58 中编码整数的最优雅和/或简洁的方法是什么?

Uro*_*327 5

比特币-bash的工具提供的功能{en,de}codeBase58

decodeBase58() {
    echo -n "$1" | sed -e's/^\(1*\).*/\1/' -e's/1/00/g' | tr -d '\n'
    dc -e "$dcr 16o0$(sed 's/./ 58*l&+/g' <<<$1)p" |
    while read n; do echo -n ${n/\\/}; done
}

encodeBase58() {
    echo -n "$1" | sed -e's/^\(\(00\)*\).*/\1/' -e's/00/1/g' | tr -d '\n'
    dc -e "16i ${1^^} [3A ~r d0<x]dsxx +f" |
    while read -r n; do echo -n "${base58[n]}"; done
}
Run Code Online (Sandbox Code Playgroud)

那些与字段一起工作dcrbase58直接在文件中定义。