0

我有一个包含 1000 个会话 ID 的列表。每个会话 ID 长度为 32 个字符。我可以用来确定每个字符级别的随机性或变化的最有效算法是什么?我是python新手,有人可以帮我开发一个python代码片段吗?仅供参考,如果令牌长度为 10 个字符,Burpsuite 中的 Sequencer 工具会为每 10 个字符位置提供一个随机图。(算法我不知道)

4

1 回答 1

0

我不知道 Burp 是如何做到的,但确定每个字符级别的变化的一种方法是对会话 ID 中的每个位置进行字符频率分析。

前提是您希望所有字符都同样可能出现在所有会话 id 的某个位置(字符的分布是统一的)。假设您收集/生成了 100 个数字会话 ID(因此每个位置的可能字符为 0-9),您希望每个数字在每个位置出现 100/10=10 次。

现在,为序列中的每个位置构建一个直方图,其中包含一个字符在所有会话 id 中实际出现在该位置的次数。

考虑到您希望它们均匀分布,要弄清楚您在每个位置观察到的字符分布的可能性有多大,您可以使用像卡方检验这样的统计检验

我在这里使用卡方测试编写了一个简单的 Python 字符计数测试器:https ://github.com/decbis/salr 。将来我会添加更多测试。

于 2012-08-31T15:01:17.497 回答