Skip to content

zealrussell/Link22

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Link22

1.Link22消息类型

1.步骤

战术消息 -》消息加密aes -》 16位CRC检错编码 -》 RS<36,21>编码 - 》 结果

消息加密

1.准备

程序运行后,首先输入待操作的消息类型,然后输入具体的消息内容。若是需要传输的消息,首先进行判断消息的link22类型,将消息数据转换成二进制字符串、切分填入对应的link消息,进而进行加密操作。

2. 切分

每条link22 。每两条link22一组,将消息数据切分后填充,不足的消息部分补0。

2. AES

将两条 link22 消息每 8bit 转换成 usigned char 类型,得到18个无符号字符,对该数组进行AES加密,得到加密后的 18个无符号字符。

3. CRC

将14个无符号字符数组数据进行CRC16操作,得到16bit校验位。

4. RS

将16bit校验码转换成2个无符号字符,其后拼接AES加密的18个无符号字符,再拼接一个全0 的无符号字符,得到待操作的 21个无符号字符。

将其进行RS<36,21>操作,得到 36个无符号字符。

消息解密

1. 解RS

将收到的36个无符号字符进行RS<36,21>解加密,得到21个无符号字符。

2. 解CRC

将前2个无符号字符取出,作为CRC原数据,其后18个数据再取出,进行CRC16操作,得到16bit数据,并与CRC原数据对比,若无差错则。

3.解AES

将18个无符号字符进行解AES操作,得到解密后的18个无符号字符。

4.取消息

从解密出的link22消息中提取出二进制消息数据,全部提取完毕后拼接在一起,转换成string字符串即为原消息。

具体的提取方式为,首先根据每条link22消息的头部判断该link22消息类型,依据类型找到对应的消息长度字,再根据消息长度提出具体位数的消息。