openssl key文件与字节码的关系

私钥Key文件内容如下

-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VuBCIEICAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/
-----END PRIVATE KEY-----

这个Key文件要表示的私钥是

202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f


这里MC4CAQAwBQYDK2VuBCIEICAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/是Base64编码解密成这样

302E020100300506032B656E04220420202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F

解密后发现他不只前面的私角,还有一些其它数据

302E020100300506032B656E04220420202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F

这是什么,经查是叫ASN.1编码

简单解析一下这个ASN.1编码

30表示ASN.1开始
2E表示剩余部分有2E个字节
02需要开始的是一个整数
01整数长度
00整数值
30表示开始的是一个Sequence
05Sequence长度
06032B656E  这里表示是1.3.101.110 curveX25519 (ECDH 25519 key agreement algorithm)
04 22 表示接下来是一个OCTET STRING 长度为22字节
04 20 表示接下来是一个OCTET STRING 长度为20字节


参考:
http://tools.ietf.org/html/rfc5915
http://luca.ntop.org/Teaching/Appunti/asn1.html
http://lapo.it/asn1js/#MC4CAQAwBQYDK2VuBCIEICAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4_
http://www.tomeko.net/online_tools/base64.php?lang=en

posted @ 2020-12-27 15:10  瓜蛋  阅读(225)  评论(0编辑  收藏  举报