python - 如何从私钥中获取椭圆曲线公钥
问题描述
因此,我需要使用 ECC spec256k1 从相应的 256 位数字中获取公钥。
因此,假设我使用 sha256 从任何密码中获取私钥,如下所示:
>>> import hashlib
>>> private_key = hashlib.sha3_256(b"Led Zeppelin - No Quarter").hexdigest()
>>> private_key
'c0b279f18074de51d075b152c8ce78b7bddb284e8cfde19896162abec0a0acce'
如何从该私钥中获取公钥?我需要将公钥打印为字符串。
解决方案
pip install fastecdsa
from fastecdsa import keys, curve,ecdsa
priv_key, pub_key = keys.gen_keypair(curve.secp256k1)
print(pub_key)
产生
X: 0xcc228e1a4c8e187a0deeabcd6e43bc8f7b6bdd91b8f823912f2de188fba054e6
Y: 0x7995a9d3866a8fa11a9af933c76216a908995ec5cec6ed7d3056b787fa7d39d7
支持的原语
素数场上的曲线-源
Name Class
P192 / secp192r1 fastecdsa.curve.P192
P224 / secp224r1 fastecdsa.curve.P224
P256 / secp256r1 fastecdsa.curve.P256
P384 / secp384r1 fastecdsa.curve.P384
P521 / secp521r1 fastecdsa.curve.P521
secp192k1 fastecdsa.curve.secp192k1
secp224k1 fastecdsa.curve.secp224k1
secp256k1 (bitcoin curve) fastecdsa.curve.secp256k1
brainpoolP160r1 fastecdsa.curve.brainpoolP160r1
brainpoolP192r1 fastecdsa.curve.brainpoolP192r1
brainpoolP224r1 fastecdsa.curve.brainpoolP224r1
brainpoolP256r1 fastecdsa.curve.brainpoolP256r1
brainpoolP320r1 fastecdsa.curve.brainpoolP320r1
brainpoolP384r1 fastecdsa.curve.brainpoolP384r1
brainpoolP512r1 fastecdsa.curve.brainpoolP512r1
推荐阅读
- django - 删除选项周围的空格和引号
- ios - 将 viewController 解除到 rootViewController 的问题
- java - 将匿名函数与流的映射一起使用
- javascript - POST操作后如何订阅创建对象的Id
- python - Scrapy - 刮掉所有物品而不是一件物品
- java - Mockito SpyBean 抛出一个 UnfinishedStubingException
- python - 使用python从bigquery获取数据时Linux服务器上的内存错误?
- oracle - 是否可以在不使用数据转换的情况下修复 SSIS 中的 Unicode 转换错误
- swift - 成功登录或注册时隐藏按钮
- javascript - Twig 根据分辨率对项目进行分组