Это вопрос из двух частей:
Часть 1
Сначала рассмотрим вычисление энтропии пароля в PHP. Я не смог найти примеры кода, которые являются эмпирически обоснованными, и мне очень понравилась бы помощь в поиске "правильного" способа вычисления конечного числа. У многих людей в сети есть свой собственный домашний алгоритм взвешивания, но я действительно ищу научный ответ на уравнение.
Я буду использовать энтропию паролей как одну часть более крупной системы безопасности и как способ анализа нашей общей безопасности данных на основе информации, доступной, если скомпрометирован пароль пользователя и насколько легко пароль может быть разбит грубой силой.
Часть 2
Вторая часть этого вопроса: насколько полезной будет эта цифра? Моя конечная цель - создать "оценку" для каждого пароля в системе, который мы можем использовать для мониторинга нашей общей безопасности системы как динамического объекта. Мне, вероятно, придется работать в другом алгоритме или два для словарных атак, заменяющих паролей l33t и т.д., Но я чувствую, что энтропия будет играть важную роль в таком "общем" рейтинге системы. Однако я приветствую предложения по другим подходам.
Что я знаю
Я видел некоторое упоминание логарифмических уравнений для вычисления энтропии, но мне еще предстоит увидеть хороший пример, который на самом деле не написан как математическое уравнение. Я мог бы действительно использовать пример кода (даже если не строго в PHP), чтобы заставить меня двигаться.
Extension
Сделав комментарий, я понял, что могу лучше объяснить полезность этого расчета. Когда я работаю над устаревшими системами, в которых пользователи имеют очень слабые пароли, у меня должно быть какое-то конкретное доказательство этой слабости, прежде чем я смогу сделать так, чтобы заставить всех пользователей менять свои пароли на новый (принудительный) надежный пароль. Сохраняя показатель силы пароля для каждой учетной записи пользователя в системе, я могу создать несколько разных показателей, чтобы показать общую слабость системы и сделать пример для более сильных паролей.
ТИА