Algorithm 用于计算会话id随机性的python代码
我有1000个会话ID的列表。会话id长度为32个字符。我可以使用什么最有效的算法来确定每个字符级别的随机性或变化?我是python新手,有人能帮我开发一个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中都同样可能出现在某个位置(字符的分布是一致
仅供参考,Burpsuite中的Sequencer工具为每10个字符的位置提供了一个随机图(如果标记长度为10个字符)。(我不知道算法)我不知道Burp是如何做到的,但确定每个字符级别变化的一种方法是对会话ID中的每个位置进行字符频率分析 前提是,您希望所有字符在所有会话ID中都同样可能出现在某个位置(字符的分布是一致的)。假设您收集/生成了100个会话ID,这些ID是数字的(因此每个位置的字符可能是0-9),您希望每个数字在每个位置出现100/10=10次 现在,为序列中的每个位置构建一个直方图,显示角色在所有会话ID中实际出现在该位置的时间 若要计算在每个位置观察到的角色分布的可能性,假设您希望它们均匀分布,则可以使用类似的统计测试
我在这里使用卡方检验编写了一个简单的Python字符计数测试程序:。我将在将来添加更多测试。如果您担心生成ID的哈希函数的有效传播,您可以查看使用的哈希算法。如果是md5或sha1,你就没事了,不用担心。这是一个遗留应用程序,使用了一些自定义算法(使用时间戳生成ID)。我在特定字符位置看到了一些不太随机的异常“特定字符位置的异常”不必等同于安全问题,而且我认为1000个会话ID对于这种分析来说还不够大。应该做的是分析所使用的算法,而不是分析所创建的密码。不,我不知道任何这样的工具(可能是出于上述原因)。