我有以下公钥,它应该是相同的,只是以不同的方式编码。
-----BEGIN PUBLIC KEY-----
MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE+jkeOL+r/kTmmTUAPs9zk+PX0MydMmz3
WYUtE1qVO7KPIm4XfwbxTkRKZvkA4uOeumn+CVeBT8fV1jaWw2obbg==
-----END PUBLIC KEY-----
-----BEGIN PUBLIC KEY-----
MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEA////////////////
/////////////////////v///C8wRAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBEEEeb5m
fvncu6xVoGKVzocLBwKb/NstzijZWfKBWxb4F5hIOtp3JqPEZV2k+/wOEQio/Re0
SKaFVBmcR9CP+xDUuAIhAP////////////////////66rtzmr0igO7/SXozQNkFB
AgEBA0IABPo5Hji/q/5E5pk1AD7Pc5Pj19DMnTJs91mFLRNalTuyjyJuF38G8U5E
Smb5AOLjnrpp/glXgU/H1dY2lsNqG24=
-----END PUBLIC KEY-----
有谁能告诉我每种格式的名称是什么,以及是否有任何方法可以在.net之间进行转换
答案 0 :(得分:3)
两者都是椭圆曲线公钥的X9.62格式。您可以通过将基数64(页眉和页脚行之间的所有内容)放入ASN.1解码器中来轻松查看。
您当然可以使用openssl asn1parse -inform PEM
或者您可以将基础64粘贴到在线解码器中。例如,以下是public key representation 1和representation 2的链接。
显然,第一个使用曲线seck256r1的命名曲线表示,另一个(specifiedCurve
)显式指定所有参数。否则两者之间没有功能差异。
我没有看到任何方法在两者之间进行转换而不自己编码。通常会使用原始域表示。