По замыслу это невозможно - в качестве основного свойства безопасности хеширования истинного пароля.
Если вы можете сравнить два хэша пароля, не зная исходного пароля, то если злоумышленник взломает один пароль в системе, он мгновенно узнает пароли всех пользователей, использующих этот пароль, без какой-либо дополнительной работы.Должно быть сразу понятно, почему это было бы плохо.
Например, если пароли хранились с использованием хеш-кода, неприемлемого для хранения паролей (например, MD5), то все пароли будут иметь одинаковые хеши MD5 и взломодин взламывает их все.
Вы не можете сделать это с современным хэшем пароля, таким как bcrypt.Единственный способ «сравнить» два современных хэша паролей - это заранее знать открытый текст, а затем применить алгоритм, используя соль в каждом хэше.И даже если два пользователя имеют один и тот же пароль, злоумышленник должен выполнить одни и те же дорогостоящие вычисления, чтобы взломать каждого из них независимо.
В более общем плане - и это может показаться немного смелым - но законного варианта использования нетдля любой системы или администратора когда-либо сравните пароли двух пользователей.Пароли пользователей должны быть на 100% независимыми и на 100% непрозрачными для системы после ее сохранения.Если системное или экономическое обоснование требует такого сравнения, его следует переработать, чтобы устранить это требование.