首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用密码库在Python中生成椭圆曲线私钥

利用密码库在Python中生成椭圆曲线私钥
EN

Stack Overflow用户
提问于 2019-12-09 13:51:01
回答 1查看 3.1K关注 0票数 1

我正在尝试使用密码学中的hazmat在python中生成公共/私有椭圆曲线密钥对。下面是我拥有的当前代码。当我运行时,它生成错误'NoneType‘对象没有属性'generate_elliptic_curve_private_key’

代码语言:javascript
复制
ecurve = asymmetric.ec.EllipticCurve
ecurve.name = 'secp256r1'
ecurve.key_size = 128
ec_backend = cryptography.hazmat.backends.interfaces.EllipticCurveBackend.generate_elliptic_curve_private_key(cryptography.hazmat.backends.interfaces.EllipticCurveBackend, ecurve)
key = asymmetric.ec.generate_private_key(curve=ecurve, backend=ec_backend)  

这是文档https://cryptography.io/en/latest/hazmat/primitives/asymmetric/ec/#

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-09 14:15:12

我不知道generate_elliptic_curve_private_key方法在哪里可用。

下面是一个生成SECP256R1并将公钥序列化为PEM格式的示例:

代码语言:javascript
复制
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import ec

private_key = ec.generate_private_key(ec.SECP256R1(), default_backend())
public_key = private_key.public_key()
# serializing into PEM
rsa_pem = public_key.public_bytes(encoding=serialization.Encoding.PEM, format=serialization.PublicFormat.SubjectPublicKeyInfo)

打印密钥

代码语言:javascript
复制
In [14]: print(rsa_pem.decode())
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEilwhueTwySfEbXd9y/inZVsYVG6z
/UJyVbN+cYgtIFd0vLdaP27cME8RGE/enMEcX7/jkb13j2DPnXt2R6teZw==
-----END PUBLIC KEY-----
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59243185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档