使用 1 字节密钥解码 1 个字节



我开发了一个应用程序,可以从服务器接收信息,自动读取数据包并将其作为浮点保存在数据库中。

例:接收数据(00 00 D0 41) -> 反向顺序(41 D0 00 00) -> 转换为浮点数 (26.0)

最近,该信息略有变化,服务器现在发送5个字节,而不是发送4个字节。

例:0A 0C 0C C0 0F

我发现第一个字节是某种密钥,当这个密钥为 06 时,数据没有加密。

例:06 00 00 D0 41

到目前为止,我看到的唯一键是 00 06 08 和 0A。

示例含义相同:
06 00 00 D0 41(原始,密钥 06)
08 32 32 12 B4(用密钥 08 编码)
00 EF EF 1B BF(使用密钥 00 编码)
0A 0C 0C C0 0F(用密钥 0A 编码)

就其外观而言,它只是逐个字节编码,我得出了这个结论,因为在几个数据包上,我知道原始字节是什么,并且加密字节保持不变。

示例:每个数据包中的 00(密钥 06)= 32(密钥 08)= EF(密钥 00)= 0C(密钥 0A)。

我在相差 4 的数字中找到了一些逻辑,

密钥 0A

00=>0C
04=>1C
08=>6C
0C=>7C
10=>CB
14=>DB
18=>2C
1C=>3C
20=>8B
24=>9B
28=>EB
2C=>FB
30=>4D
34=>5D
38=>AD
3C=>BD

我的问题是,找出加密算法的最佳方法是什么?

  • 我是否应该暴力破解多个操作(异或、旋转和,...)并查看它们是否匹配?
  • 是否有具有此行为的算法?

我将依次回答两个相关的问题。

  • 是的,我会使用通常的嫌疑人暴力破解算法。不要忘记加法(模 256)。
  • 这不是我知道的算法,它似乎不是编码或加密,更多的是混淆问题。

现代加密算法不处理已知的单字节密钥,并产生与随机无法区分的数据。它也不是编码,其中至少有字节似乎超出了字符编码或例如 BCD 编码的预期字节。

最新更新