Private-Key
私鑰 BASE58 (P2PKH) 背後的數學原理是什麼
使用此連結,我可以了解有關私鑰 BASE58 (P2PKH) 的一些資訊:
“這樣的編碼總是會產生一個以'5’開頭的51個字元的字元串,或者更具體地說,‘5H’、‘5J’或'5K’。”
所以假設我有這種私鑰模型:
5J1111111111111111111111111111111111110111111222222
我知道這不是有效的私鑰,因為我可以使用諸如 bitaddress 之類的網站來告訴我這一點。
使用這樣的私鑰,我想了解如何驗證它是否有效,程序是什麼,因為我想編寫一個腳本來解決這個問題。
請記住,我沒有任何其他資訊,只有這樣的字元串。
使用這樣的私鑰,我想了解如何驗證它是否有效,程序是什麼,因為我想編寫一個腳本來解決這個問題。
- 檢查字元串是否包含有效的 Base-58 字元 (
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
)- 使用 Base-58 編碼解碼字元串以獲取字節數組,同時刪除和驗證其校驗和(最後 4 個字節)。有關詳細資訊,請參閱您發布的wiki 連結。
- 獲取第一個字節並檢查它是否使用預期的(版本)值(MainNet 為 128,TestNet 為 239)。
- 檢查剩餘數據長度(沒有第一個字節):
4.1。如果是32字節,那就是關鍵
4.2。如果是33字節,去掉最後一個字節,檢查是否等於
1
,剩下的就是key4.3。如果長度為其他,則無效 5. 使用 big-endian 定義將步驟 4 中的 32 個字節轉換為 256 位整數 6. 第 5 步的值必須是 >=
1
和 <=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140