0

我正在使用基于 Web 的 owasp EnDe 工具来理解 nibbles 和一般编码。我正在测试一个样本输入,它是abcd.

现在,根据第一个半字节和第二个半字节对其进行编码的结果分别为36,1,36,2,36,3,36,4,37,7,37,8,37,9,37,A6,31,6,32,6,33,6,34,7,37,7,38,7,39,7,61

上述示例输入的十六进制简单表示是61 62 63 64 77 78 79 7a.

简单来说,半字节 1 和半字节 2 应该分别是 LSB 半字节和 MSB 半字节。有人可以解释它与该工具的使用有何关系吗?

谢谢

4

1 回答 1

0

在查看执行编码的代码时,它似乎在 ASCII 代码的十六进制字符串上工作,而不是采用 ASCII 代码的半字节。因此,对于您的“abcd”示例和 1 个半字节编码,它的工作方式如下。

'a' -> 0x61 -> '61' '61' 的第一个半字节是 '6',其中 '6' -> 0x36 -> '36' 所以 'a' 最终被编码为 %%361

'b' -> 0x62 -> '62' '62' 的第一个半字节是 '6',然后又是 '36'。所以 'b' 最终被编码为 %%362

……

我不确定这种编码记录在哪里,也许你可以试试谷歌。

您可以在https://github.com/EnDe/EnDe/blob/master/EnDe.js#L982找到执行编码的函数

于 2013-02-27T09:57:59.223 回答