第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

我無法按順序從她的私鑰生成 ECDSA 公鑰

我無法按順序從她的私鑰生成 ECDSA 公鑰

Go
慕虎7371278 2022-11-28 10:43:27
我無法按順序生成公鑰。輸出 :./keysgo.go:33:33: 不能使用 PrivateKey(類型 []byte)作為 Public 參數(shù)中的類型字符串非常感謝你的幫助保留這部分很重要:func Public(PrivateKey string) (publicKey string) {    var e ecdsa.PrivateKey    e.D, _ = new(big.Int).SetString(PrivateKey, 16)    e.PublicKey.Curve = secp256k1.S256()    e.PublicKey.X, e.PublicKey.Y = e.PublicKey.Curve.ScalarBaseMult(e.D.Bytes())    return fmt.Sprintf("%x", elliptic.MarshalCompressed(secp256k1.S256(), e.X, e.Y))我試過了package main import (    "crypto/ecdsa"    "crypto/elliptic"    "fmt"    "math/big"    "github.com/ethereum/go-ethereum/crypto/secp256k1"           )func Public(PrivateKey string) (publicKey string) {    var e ecdsa.PrivateKey    e.D, _ = new(big.Int).SetString(PrivateKey, 16)    e.PublicKey.Curve = secp256k1.S256()    e.PublicKey.X, e.PublicKey.Y = e.PublicKey.Curve.ScalarBaseMult(e.D.Bytes())    return fmt.Sprintf("%x", elliptic.MarshalCompressed(secp256k1.S256(), e.X, e.Y))}func main() {        count, one := big.NewInt(1), big.NewInt(1)    count.SetString("9404625697166532776746648320380374280100293470930272690489102837043110636674",10)        PrivateKey := make([]byte, 32)   for {        count.Add(count, one)        copy(PrivateKey[32-len(count.Bytes()):], count.Bytes())                fmt.Printf("%x\n",Public(PrivateKey))            }       }   }
查看完整描述

4 回答

?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

非常感謝 Wesley 先生,我正在尋找的是這樣的東西, https://go.dev/play/p/ws2c_bIc4M5 但我無法按順序生成密鑰(私人和公共)謝謝你的好意



查看完整回答
反對(duì) 回復(fù) 2022-11-28
?
陪伴而非守候

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊

非常感謝您的回復(fù)


我試過了 Public(string(PrivateKey))


程序的響應(yīng)


panic: runtime error: invalid memory address or nil pointer dereference

[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x4b47f9]


goroutine 1 [running]:

math/big.(*Int).Bytes(...)

        /usr/local/go/src/math/big/int.go:453


main.Public({0xc00001e1a0, 0x20})

        /root/Desktop/tuttogoprova/adressgoprova.go:17 +0x99

main.main()

        /root/Desktop/tuttogoprova/adressgoprova.go:37 +0xd3

exit status 2


查看完整回答
反對(duì) 回復(fù) 2022-11-28
?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊

您定義PrivateKey為字節(jié)片:

PrivateKey := make([]byte, 32)

該函數(shù)Public被定義為將字符串作為其參數(shù):

func Public(PrivateKey string) (publicKey string) {...}

因此Public(PrivateKey)無法工作,因?yàn)?code>privateKey類型錯(cuò)誤。

我不太確定代碼試圖做什么,但也許Public(string(PrivateKey))是你需要的?


查看完整回答
反對(duì) 回復(fù) 2022-11-28
?
holdtom

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊

正如jochen 的回答所述,您需要先將PrivateKey字節(jié)切片轉(zhuǎn)換為字符串,然后再將其發(fā)送給Public函數(shù)。

一旦完成,就會(huì)發(fā)生指針取消引用錯(cuò)誤,因?yàn)槟鸀樗接袠?gòu)建的字符串不是有效的bigint.

我通過復(fù)制count.String()PrivateKey而不是count.Bytes()

有關(guān)存儲(chǔ)密鑰對(duì)的更好方法,請(qǐng)參閱此答案。

這是一些演示所有這些的工作代碼。它確實(shí)需要cgo,因?yàn)樵即a使用它,所以它不會(huì)在操場(chǎng)上運(yùn)行。


查看完整回答
反對(duì) 回復(fù) 2022-11-28
  • 4 回答
  • 0 關(guān)注
  • 144 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)