它看起来像你正在使用 https://github.com/vbuterin/pybitcointools 。
我认为你要做的是 Diffie Hellman关键协议 ,这与ECDSA不同。
你似乎在第二个例子中有正确的想法,但是 椭圆曲线点乘法 并不像你正在做的那样简单明了。
您正在使用的库有一个 multiply(pubkey, privkey) 功能,做你想要的:
multiply(pubkey, privkey)
import bitcoin # Simple private keys for demonstration alice_private = 10 alice_public = bitcoin.privkey_to_pubkey(alice_private) bob_private = 20 bob_public = bitcoin.privkey_to_pubkey(bob_private) # Exchange public keys alice_shared_secret = bitcoin.multiply(bob_public, alice_private) bob_shared_secret = bitcoin.multiply(alice_public, bob_private) if alice_shared_secret == bob_shared_secret: print("shared secrets match")
共享秘密是一个 点 在曲线上,即(x,y)坐标对(该库中的元组)。您通常会使用X坐标并对其进行散列以获取对称加密的密钥。