為ed25519 密鑰產生公鑰匹配BEP
問題:
問題:使用Go crypto/ed🎜>問題:
原因:
解決方案:
雖然無法將 BEP 私鑰轉換為 Go 格式,但可以建立 Go 函式庫的修改版本來處理 BEP 中使用的雜湊私鑰。
<code class="go">func getPublicKey(privateKey []byte) []byte { // ... (extraction of 32-byte hash from 64-byte hashed private key and publicKey generation) ... } func sign(privateKey, publicKey, message []byte) []byte { // ... (extraction of 32-byte hash from 64-byte hashed private key and signature computation) ... }</code>
getPublicKey:從64 位元組散列私鑰產生公鑰產生公用公鑰鑰。 sign:計算使用雜湊私鑰、公鑰和訊息進行簽署。
<code class="go">// Using the modified code... fmt.Printf("Calculated key: %x\n", publicKey) fmt.Printf("Expected key: %s\n", expectedPublicKey) keyMatches := expectedPublicKey == hex.EncodeToString(publicKey) fmt.Printf("Public key matches expected: %v\n", keyMatches) // Similarly, check for signature match</code>用法:使用此修改後的程式碼,可以執行測試案例,證明產生的公鑰和簽章與預期的BEP 資料匹配:
以上是為什麼我的 Go ed25519 公鑰與預期的 BEP 資料不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!