from pycoin import encoding
from pycoin.ecdsa import public_pair_for_secret_exponent, generator_secp256k1
from pycoin.serialize import h2b
is_compressed = False
secret_exponent = 0x3aba4162c7251c891207b747840551a71939b0de081f85c4e44cf7c13e41daa6
wif = encoding.secret_exponent_to_wif(secret_exponent, compressed=is_compressed)
print(wif)
#5JG9hT3beGTJuUAmCQEmNaxAuMacCTfXuw1R3FCXig23RQHMr4K
任选一随机数作为私钥,并得到其wif格式表示
public_point = public_pair_for_secret_exponent(generator_secp256k1, secret_exponent)
print(public_point)
#(41637322786646325214887832269588396900663353932545912953362782457239403430124, 16388935128781238405526710466724741593761085120864331449066658622400339362166)
得到公钥,即椭圆曲线上的一对点
sec = encoding.public_pair_to_sec(public_point, compressed=is_compressed)
print(sec)
#b'\x04\\\r\xe3\xb9\xc8\xab\x18\xdd\x04\xe3Q\x12C\xec)R\x00-\xbf\xad\xc8d