Если ваши пароли хранятся приемлемо, то лучшее, чего вы можете достичь в хранилище, - это попытка грубой силы с использованием этого списка паролей.
То есть взять пароль из списка BadPassword, взять соль, хранящуюся в базе данных для этого пользователя, применить его к выбранному паролю и посмотреть, совпадают ли хэши. В основном ваша производительность будет пропорциональна user count * BadPassword count
.
В зависимости от того, что вы подразумеваете под «хэшем», с помощью чего-то вроде SHA-1 вы можете использовать на удивление большое количество догадок. Но если вы смотрите на что-то серьезное, например, BCrypt / Argon, это дорого.
Еще одной идеей будет решение проблемы аутентификации при следующем входе в систему. В это время у вас будет необработанный пароль. Я хотел бы (в контексте более позднего входа) рассмотреть возможность использования службы, такой как pwndpasswords (или свернуть набор данных в вашей собственной системе). Даже в значительной степени хорошие пароли могут быть плохим выбором из-за заполнения учетных данных. (Подумайте о других службах, которые были взломаны, подвергая паролям с открытым текстом. Не обязательно общий выбор, но они будут присутствовать в этих атаках по заполнению учетных данных).