这个私钥的格式是什么?
What is the format of this private key?
我得到了这样一个 pem 密钥:
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgDZUgDvKixfLi8cK8
/TFLY97TDmQV3J2ygPpvuI8jSdihRANCAARRN3xgbPIR83dr27UuDaf2OJezpEJx
UC3v06+FD8MUNcRAboqt4akehaNNSh7MMZI+HdnsM4RXN2y8NePUQsPL
-----END PRIVATE KEY-----
我只知道这个key是用来做ecdsa签名的
现在我想知道密钥的真实值,因为我需要它来计算一些东西,我相信在真实值前面有某种header。
我尝试用python-ecdsa解析密钥,但显然没有用。
我怎样才能得到真正的价值?
您似乎有一个代表 NIST P-256 曲线的 ECDSA 私钥的 ASN1 结构,并且它被编码为 PEM 文件。
我能够使用 OpenSSL 命令行实用程序获取您的私钥和 public 密钥以及曲线信息:
$ openssl ec -in test.pem -text -noout
read EC key
Private-Key: (256 bit)
priv:
0d:95:20:0e:f2:a2:c5:f2:e2:f1:c2:bc:fd:31:4b:
63:de:d3:0e:64:15:dc:9d:b2:80:fa:6f:b8:8f:23:
49:d8
pub:
04:51:37:7c:60:6c:f2:11:f3:77:6b:db:b5:2e:0d:
a7:f6:38:97:b3:a4:42:71:50:2d:ef:d3:af:85:0f:
c3:14:35:c4:40:6e:8a:ad:e1:a9:1e:85:a3:4d:4a:
1e:cc:31:92:3e:1d:d9:ec:33:84:57:37:6c:bc:35:
e3:d4:42:c3:cb
ASN1 OID: prime256v1
NIST CURVE: P-256
你也可以看看ASN1结构本身:
$ openssl asn1parse -in test.pem
0:d=0 hl=3 l= 135 cons: SEQUENCE
3:d=1 hl=2 l= 1 prim: INTEGER :00
6:d=1 hl=2 l= 19 cons: SEQUENCE
8:d=2 hl=2 l= 7 prim: OBJECT :id-ecPublicKey
17:d=2 hl=2 l= 8 prim: OBJECT :prime256v1
27:d=1 hl=2 l= 109 prim: OCTET STRING [HEX DUMP]:306B02010104200D95200EF2A2C5F2E2F1C2BCFD314B63DED30E6415DC9DB280FA6FB88F2349D8A1440342000451377C606CF211F3776BDBB52E0DA7F63897B3A44271502DEFD3AF850FC31435C4406E8AADE1A91E85A34D4A1ECC31923E1DD9EC338457376CBC35E3D442C3CB
我得到了这样一个 pem 密钥:
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgDZUgDvKixfLi8cK8
/TFLY97TDmQV3J2ygPpvuI8jSdihRANCAARRN3xgbPIR83dr27UuDaf2OJezpEJx
UC3v06+FD8MUNcRAboqt4akehaNNSh7MMZI+HdnsM4RXN2y8NePUQsPL
-----END PRIVATE KEY-----
我只知道这个key是用来做ecdsa签名的
现在我想知道密钥的真实值,因为我需要它来计算一些东西,我相信在真实值前面有某种header。
我尝试用python-ecdsa解析密钥,但显然没有用。
我怎样才能得到真正的价值?
您似乎有一个代表 NIST P-256 曲线的 ECDSA 私钥的 ASN1 结构,并且它被编码为 PEM 文件。
我能够使用 OpenSSL 命令行实用程序获取您的私钥和 public 密钥以及曲线信息:
$ openssl ec -in test.pem -text -noout
read EC key
Private-Key: (256 bit)
priv:
0d:95:20:0e:f2:a2:c5:f2:e2:f1:c2:bc:fd:31:4b:
63:de:d3:0e:64:15:dc:9d:b2:80:fa:6f:b8:8f:23:
49:d8
pub:
04:51:37:7c:60:6c:f2:11:f3:77:6b:db:b5:2e:0d:
a7:f6:38:97:b3:a4:42:71:50:2d:ef:d3:af:85:0f:
c3:14:35:c4:40:6e:8a:ad:e1:a9:1e:85:a3:4d:4a:
1e:cc:31:92:3e:1d:d9:ec:33:84:57:37:6c:bc:35:
e3:d4:42:c3:cb
ASN1 OID: prime256v1
NIST CURVE: P-256
你也可以看看ASN1结构本身:
$ openssl asn1parse -in test.pem
0:d=0 hl=3 l= 135 cons: SEQUENCE
3:d=1 hl=2 l= 1 prim: INTEGER :00
6:d=1 hl=2 l= 19 cons: SEQUENCE
8:d=2 hl=2 l= 7 prim: OBJECT :id-ecPublicKey
17:d=2 hl=2 l= 8 prim: OBJECT :prime256v1
27:d=1 hl=2 l= 109 prim: OCTET STRING [HEX DUMP]:306B02010104200D95200EF2A2C5F2E2F1C2BCFD314B63DED30E6415DC9DB280FA6FB88F2349D8A1440342000451377C606CF211F3776BDBB52E0DA7F63897B3A44271502DEFD3AF850FC31435C4406E8AADE1A91E85A34D4A1ECC31923E1DD9EC338457376CBC35E3D442C3CB