战术消息 -》消息加密aes -》 16位CRC检错编码 -》 RS<36,21>编码 - 》 结果
程序运行后,首先输入待操作的消息类型,然后输入具体的消息内容。若是需要传输的消息,首先进行判断消息的link22类型,将消息数据转换成二进制字符串、切分填入对应的link消息,进而进行加密操作。
每条link22 。每两条link22一组,将消息数据切分后填充,不足的消息部分补0。
将两条 link22 消息每 8bit 转换成 usigned char 类型,得到18个无符号字符,对该数组进行AES加密,得到加密后的 18个无符号字符。
将14个无符号字符数组数据进行CRC16操作,得到16bit校验位。
将16bit校验码转换成2个无符号字符,其后拼接AES加密的18个无符号字符,再拼接一个全0 的无符号字符,得到待操作的 21个无符号字符。
将其进行RS<36,21>操作,得到 36个无符号字符。
将收到的36个无符号字符进行RS<36,21>解加密,得到21个无符号字符。
将前2个无符号字符取出,作为CRC原数据,其后18个数据再取出,进行CRC16操作,得到16bit数据,并与CRC原数据对比,若无差错则。
将18个无符号字符进行解AES操作,得到解密后的18个无符号字符。
从解密出的link22消息中提取出二进制消息数据,全部提取完毕后拼接在一起,转换成string字符串即为原消息。
具体的提取方式为,首先根据每条link22消息的头部判断该link22消息类型,依据类型找到对应的消息长度字,再根据消息长度提出具体位数的消息。