Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 用于计算会话id随机性的python代码_Algorithm_Session_Random_Python 2.7_Security - Fatal编程技术网

Algorithm 用于计算会话id随机性的python代码

Algorithm 用于计算会话id随机性的python代码,algorithm,session,random,python-2.7,security,Algorithm,Session,Random,Python 2.7,Security,我有1000个会话ID的列表。会话id长度为32个字符。我可以使用什么最有效的算法来确定每个字符级别的随机性或变化?我是python新手,有人能帮我开发一个python代码段吗? 仅供参考,Burpsuite中的Sequencer工具为每10个字符的位置提供了一个随机图(如果标记长度为10个字符)。(我不知道算法)我不知道Burp是如何做到的,但确定每个字符级别变化的一种方法是对会话ID中的每个位置进行字符频率分析 前提是,您希望所有字符在所有会话ID中都同样可能出现在某个位置(字符的分布是一致

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

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

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

现在,为序列中的每个位置构建一个直方图,显示角色在所有会话ID中实际出现在该位置的时间

若要计算在每个位置观察到的角色分布的可能性,假设您希望它们均匀分布,则可以使用类似的统计测试


我在这里使用卡方检验编写了一个简单的Python字符计数测试程序:。我将在将来添加更多测试。

如果您担心生成ID的哈希函数的有效传播,您可以查看使用的哈希算法。如果是md5或sha1,你就没事了,不用担心。这是一个遗留应用程序,使用了一些自定义算法(使用时间戳生成ID)。我在特定字符位置看到了一些不太随机的异常“特定字符位置的异常”不必等同于安全问题,而且我认为1000个会话ID对于这种分析来说还不够大。应该做的是分析所使用的算法,而不是分析所创建的密码。不,我不知道任何这样的工具(可能是出于上述原因)。