2015-06-03 17 views
0
myNumber=$(date +%s) # big number in decimal 
myNumberInB58=$(toBase58 $myNumber) 

toBase58() { 
    # <your answer here> 
} 

Base58中編寫整數的最優雅和/或簡潔的方法是什麼?如何在Bash中將十進制數轉換爲Base58

+0

你究竟認爲Base58是什麼?參考鏈接將很有用。 – rici

+0

完成。請參閱http://fileformats.archiveteam.org/wiki/Base58 – Elifarley

回答

0

會這樣嗎?

a=({1..9} {A..H} {J..N} {P..Z} {a..k} {m..z}) 
toBase58() { 
    # TODO: check that $1 is a valid number 
    local nb=$1 b58= fiftyeight=${#a[@]} 
    while ((nb)); do 
     b58=${a[nb%fiftyeight]}$b58 
     ((nb/=fiftyeight)) 
    done 
    printf '%s\n' "$b58" 
} 
0

bitcoin-bash-tools提供的功能{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 
} 

那些工作與上面的文件中直接定義的字段dcrbase58

相關問題