0

1000 個のセッション ID のリストがあります。セッション ID の長さはそれぞれ 32 文字です。各文字レベルでのランダム性またはバリエーションを決定するために使用できる最も効率的なアルゴリズムは何ですか? 私はPythonを初めて使用します。誰かが同じPythonコードスニペットを開発するのを手伝ってくれますか? 参考までに、Burpsuite のシーケンサー ツールは、トークンの長さが 10 文字の場合、10 文字の位置ごとにランダムネス グラフを提供します。(アルゴリズムは私には不明です)

4

1 に答える 1

0

Burpがどのようにそれを行うかはわかりませんが、各文字レベルでの変動を判断する1つの方法は、セッションIDの各位置に対して文字頻度分析を行うことです。

前提は、すべての文字がすべてのセッションIDの位置に等しく表示される可能性が高いことを期待することです(文字の分布は均一です)。数値である100個のセッションIDを収集/生成したとしましょう(したがって、各位置で可能な文字は0〜9になります)、各桁は各位置で100/10=10回表示されると予想されます。

次に、シーケンス内の各位置について、すべてのセッションIDにわたってその位置に文字が実際に表示される回数のヒストグラムを作成します。

均一に分布すると予想される場合に、各位置で観測された文字分布がどの程度可能性があるかを把握するには、カイ2乗検定などの統計的検定を使用できます。

ここでは、カイ2乗検定を使用して簡単なPython文字カウントテスターを作成しました:https ://github.com/decbis/salr 。将来的にはさらにテストを追加します。

于 2012-08-31T15:01:17.497 に答える