Private-Key

如何將 SHA256 雜湊轉換為比特幣 base58 私鑰?

  • October 28, 2019

如何獲取 sha256sum 的輸出

sudofox@ubuntu:~$ echo -n 'Hi guys!' | sha256sum
7542fb6685f9fd8f37d56faf62f0bb4563684a51539e4b26f0840db361e0027c  -

並將其轉換為 Base58Check 編碼的私鑰?

我需要能夠使用 SHA256 密鑰列表來執行此操作。有沒有我可以下載的腳本,或者我必須花幾個星期製作它才能製作我的臨時地址?

回應第一條評論:不,我必須將一個字元串(例如“fluttershy”)輸入到 sha256sum 中,然後我必須將 sha256sum 的輸出編碼為 base58check 私鑰。

string –> sha256sum –> 一些自動的過程,這就是這個問題的目的 –> 比特幣私鑰。

更新:對於任何想要使用 Grondilu 的比特幣 Bash 工具的人:您需要在將 bitcoin.sh 文件解壓縮到您的目錄後獲取它以使用這些功能。

source ./bitcoin.sh

更新 2(2017 年 8 月):重寫腳本以一次性從步驟 1 轉到 WIF。如果你想跳過 lib 的其餘部分,你可以只添加 base58 的聲明和 bitcoin.sh 中的 encodeBase58 函式。

#!/bin/bash
#Tool to convert bitcoin privkeys into WIF keys
# by sudofox

source ./bitcoin.sh

KEY=$1 # first arg

# add 0x80 to beginning
EXTENDEDKEY=$(echo 80$KEY)
FIRSTHASH=$(echo -n "$EXTENDEDKEY" |xxd -r -p |sha256sum -b|awk '{print $1}')
SECONDHASH=$(echo -n "$FIRSTHASH" |xxd -r -p |sha256sum -b|awk '{print $1}')
CHECKSUM=$(echo $SECONDHASH|cut -c1-8)
FINAL=$(encodeBase58 $EXTENDEDKEY$CHECKSUM)
echo $FINAL

用法是

./sha256_to_privkey.sh 密鑰

在我的例子中(見斯蒂芬·戈尼克的回答),關鍵是

807542FB6685F9FD8F37D56FAF62F0BB4563684A51539E4B26F0840DB361E0027CCD5C4A8E

對各種功能做同樣的事情,根據需要進行修改。希望這可以幫助任何努力使用這些工具的人。

您要求的內容被描述為計算該私鑰的錢包導入格式:

  • <http://en.bitcoin.it/wiki/Wallet_import_format>

使用您的範例:

1.)取一個私鑰(下面是二進制值的十六進製表示)

7542FB6685F9FD8F37D56FAF62F0BB4563684A51539E4B26F0840DB361E0027C

2.) 在它前面添加一個 0x80 字節

807542FB6685F9FD8F37D56FAF62F0BB4563684A51539E4B26F0840DB361E0027C

3.) 對擴展密鑰執行 SHA-256 雜湊

$ echo -n '807542FB6685F9FD8F37D56FAF62F0BB4563684A51539E4B26F0840DB361E0027C' | xxd -r -p | sha256sum -b

7DE4708EB23AB611371BB778FC0C8BDE80394AB2D8704D7129FB5771E2F1730D

4.) 對 SHA-256 雜湊結果執行 SHA-256 雜湊

$ echo -n '7DE4708EB23AB611371BB778FC0C8BDE80394AB2D8704D7129FB5771E2F1730D' | xxd -r -p | sha256sum -b

CD5C4A8E03DFBB0E3AA021C2D74A9EAA43CE4C9CB1B20FC88729A7A5834141CA

5.) 取第二個 SHA-256 雜湊的前 4 個字節,這是校驗和

CD5C4A8E

6.) 在第 2 點的擴展密鑰末尾添加第 5 點的 4 個校驗和字節

807542FB6685F9FD8F37D56FAF62F0BB4563684A51539E4B26F0840DB361E0027CCD5C4A8E

7.) 將結果從字節字元串轉換為 Base58 以將其轉換為 Base58Check 格式。這也稱為錢包導入格式

(使用<https://bitcointools.appspot.com>或使用<https://github.com/grondilu/bitcoin-bash-tools>中的 encodeBase58 從第 6 點轉換為 base58 )

5JhvsapkHeHjy2FiUQYwXh1d74evuMd3rGcKGnifCdFR5G8e6nH

引用自:https://bitcoin.stackexchange.com/questions/8247