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
完
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2017-12-27 LUA返回的是引用
2011-12-27 结构和细节