openssl版本号解析

https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_VERSION_NUMBER.html

#define OPENSSL_VERSION_NUMBER 0xnnnnnnnnnL 

从上面文章中可以看得出版本号共9位数(最后的L表示长整型)
如 0x101010ef 省略了前面的一个0, 实际为 0x0101010ef 版本是 1.1.1n-release

解析方法如下:
0x0101010ef 前有6位的 010101 为 1.1.1  
7到8位为 0e 对应字母 n

n的由来如下:

7-8位映射表
000102030405060708090a0b0c
abcdefghijkl
7-8位映射表-续
0d0e0f101112131415161718191a
mnopqrstuvwxyz

所以 0e 对应表格中的 n

第9位代表状态 dev beta release等,即 0 表示 dev,1 到 e 表示 beta 1 到 14,f 则表示 release 

OPENSSL_VERSION_NUMBER 具体的值,一般在 opensslv.h 头文件中