4 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
非常感謝 Wesley 先生,我正在尋找的是這樣的東西, https://go.dev/play/p/ws2c_bIc4M5
但我無法按順序生成密鑰(私人和公共)謝謝你的好意

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

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))
是你需要的?

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)行。
- 4 回答
- 0 關(guān)注
- 144 瀏覽
添加回答
舉報(bào)