如何將 SHA256 雜湊轉換為比特幣 base58 私鑰?
如何獲取 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