Private-Key

私鑰 BASE58 (P2PKH) 背後的數學原理是什麼

  • October 18, 2020

使用此連結,我可以了解有關私鑰 BASE58 (P2PKH) 的一些資訊:

“這樣的編碼總是會產生一個以'5’開頭的51個字元的字元串,或者更具體地說,‘5H’、‘5J’或'5K’。”

所以假設我有這種私鑰模型:

5J1111111111111111111111111111111111110111111222222

我知道這不是有效的私鑰,因為我可以使用諸如 bitaddress 之類的網站來告訴我這一點。

使用這樣的私鑰,我想了解如何驗證它是否有效,程序是什麼,因為我想編寫一個腳本來解決這個問題。

請記住,我沒有任何其他資訊,只有這樣的字元串。

使用這樣的私鑰,我想了解如何驗證它是否有效,程序是什麼,因為我想編寫一個腳本來解決這個問題。

  1. 檢查字元串是否包含有效的 Base-58 字元 ( 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz)
  2. 使用 Base-58 編碼解碼字元串以獲取字節數組,同時刪除和驗證其校驗和(最後 4 個字節)。有關詳細資訊,請參閱您發布的wiki 連結。
  3. 獲取第一個字節並檢查它是否使用預期的(版本)值(MainNet 為 128,TestNet 為 239)。
  4. 檢查剩餘數據長度(沒有第一個字節):

4.1。如果是32字節,那就是關鍵

4.2。如果是33字節,去掉最後一個字節,檢查是否等於1,剩下的就是key

4.3。如果長度為其他,則無效 5. 使用 big-endian 定義將步驟 4 中的 32 個字節轉換為 256 位整數 6. 第 5 步的值必須是 >=1和 <=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140

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