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://lapo.it/asn1js/#MC4CAQAwBQYDK2VuBCIEICAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4_
完