===============================================================================
南京工程学院 - 校园网802.1X客户端 - 项目文档
-------------------------------------------------------------------------------
参考AGanNo2的相关介绍,在此将版本号加密/解密步骤整理如下。
[H3C版本号加密流程]
选取任意32位随机数,并生成字符串形式的密钥
uint32_t randam;
char key[8+1];
sprintf(key, "%08x", randam);
加密步骤:
char version[16]="EN V2.40-0335";
|
| 异或
|《———————— key[] (例如取randam=0x12345678,则字符串key[]为"12345678")
|
version[16]: "LK%W3+19$5624 "
|
| 将整数randam附加到version[16]之后,组成20字节
|《—————————————————————————————————————————————
|
version[20]: "LK%W3+19$5624 4Vx"
|
| 异或
|《——————— "HuaWei3COM1X"
|
version[20]: "; <s23IJ%?C "
|
| 按照Base64格式编码,输出可读的ASCII字符串
|《——————————————————————————————————————————
|
最后生成的28字节版本号为:
Rw0tZQEjdzIzSUolP0MNOyA8EHM=
[“异或”运算的细节]
1、每个密钥被按正序、逆序使用两遍
2、密钥会被扩展为与待加密数据长度相同
使用密钥key[]="12345678"加密"EN V2.40-0335":
"EN V2.40-0335 "
"1234567812345678"
XOR "8765432187654321"
————————————————————————————————
"LK%W3+19$5624 "
使用密钥"HuaWei3COM1X"加密"LK%W3+19$5624 4Vx":
"LK%W3+19$5624 4Vx"
"HuaWei3COM1XHuaWei3C"
XOR "C3ieWauHX1MOC3ieWauH"
————————————————————————————————
"; <s23IJ%?C "
[H3C认证服务器解读版本号流程]
28字节版本号秘文
|
| Base64解码
|《—————————————
|
verison[20]
|
| 异或
|《———————— "HuaWei3COM1X"
|
version[20]
| \
| \
前16字节 取出末尾4字节,即randam
| |
| |
| |
| 异或 |
|《—————— key[]
|
|
还原成版本号字符串"EN V2.40-0335"
===============================================================================