これは2つの部分からなる質問です。
パート1
まず、PHPでのパスワードのエントロピーの計算を扱います。私は経験的に健全なコード例を見つけることができず、最終的な数値を計算するための「正しい」方法を見つけるのに本当に助けを求めています。ネット上の多くの人々は独自の自家製の重み付けアルゴリズムを持っていますが、私は方程式に対する科学的な答えを本当に探しています。
パスワードエントロピーは、より大規模なセキュリティシステムの一部として、またユーザーのパスワードが侵害された場合にアクセス可能な情報とブルートフォースによってパスワードが簡単に破られる可能性がある情報に基づいてデータセキュリティ全体を分析する方法として使用します。
パート2
この質問の2番目の部分は、この数値が実際にどれほど役立つかということです。私の最終目標は、動的エンティティとしてシステム全体のセキュリティを監視するために使用できる、システム内のパスワードごとに「スコア」を生成することです。辞書攻撃やl33t置換パスワードなどについては、おそらく別のアルゴリズムで作業する必要がありますが、このような「全体的な」システム評価ではエントロピーが重要な役割を果たすと思います。ただし、他のアプローチの提案は歓迎します。
私が知っていること
上記のエントロピーを計算するための対数方程式についての言及を見たことがありますが、実際には数式として書かれていない良い例はまだ見ていません。私は実際にコード例を使用して(厳密にPHPでなくても)私を動かすことができました。
拡大
コメントをすることで、この計算の有用性をよりよく説明できることに気づきました。ユーザーのパスワードが非常に弱いレガシーシステムで作業している場合、すべてのユーザーにパスワードを新しい(強制された)強力なパスワードに変更するように強制する前に、その弱点の具体的な証拠が必要です。システム内の各ユーザーアカウントのパスワード強度スコアを保存することで、システム全体の弱点を示し、より強力なパスワードを主張するためのいくつかの異なるメトリックを構築できます。
TIA