Требование заключается в том, что когда пользователь меняет свой пароль, он не должен иметь возможности выбирать ни один из предыдущих паролей N.
Пожалуйста, отодвиньте это требование. Это бессмысленно и не улучшает безопасность немного. Каждый раз, когда вы заставляете пользователей менять пароли, вы увеличиваете вероятность того, что они просто запишут его и прикрепят к своему монитору. Запрет на повторное использование старых паролей делает их еще хуже.
Это «лучшая практика» безопасности, такая как кровотечение и выщелачивание, которые раньше были лучшей медицинской практикой; все делали это по незнанию.