Mengapa Kunci Awam My Go ed25519 Berbeza Daripada Data BEP yang Dijangka?

Patricia Arquette
Lepaskan: 2024-10-31 07:23:29
asal
964 orang telah melayarinya

Why Does My Go ed25519 Public Key Differ From the Expected BEP Data?

Menjana BEP Pemadanan Kunci Awam untuk Kunci ed25519

Masalah:
Menggunakan pakej crypto/ed25519 Go , kunci awam yang dijana berbeza daripada yang dijangkakan yang disediakan dalam kes ujian menggunakan data BEP.

Punca:
Format kunci persendirian yang berbeza wujud untuk ed25519. Data BEP menggunakan kunci peribadi cincang 64 bait, manakala pakej Go menggunakan kunci peribadi cincang 32 bait (diawalan oleh benih 32 bait).

Penyelesaian:
Walaupun tidak mungkin untuk menukar kunci peribadi BEP kepada format Go, versi pustaka Go yang diubah suai boleh dibuat untuk mengendalikan kunci peribadi yang dicincang yang digunakan dalam BEP.

Pengubahsuaian Kod:

Kod yang diubah suai termasuk fungsi berikut:

  1. getPublicKey: Menjana kunci awam daripada kunci persendirian cincang 64 bait.
  2. tanda: Mengira tandatangan menggunakan kunci persendirian yang dicincang, kunci awam dan mesej.
<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>
Salin selepas log masuk

Penggunaan:

Dengan kod yang diubah suai ini, kes ujian boleh dijalankan , menunjukkan bahawa kunci awam dan tandatangan yang dijana sepadan dengan data BEP yang dijangkakan:

<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>
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Kunci Awam My Go ed25519 Berbeza Daripada Data BEP yang Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!