Я думаю, что то, о чем я собираюсь спросить, невозможно, однако я подумал, что это стоило того.
У нас есть приложение, которое использует функции SQL Server PWDEncrypt и PWDCompare.
Часть системы создает дубликаты пользователей (тот же логин и пароль). Из-за ошибки в системе вместо копирования двоичного сохраненного PWDEncrypt пароля он выполнил другой PWDEncrypt пароля. Поэтому двоичные значения не совпадают.
Можно ли выяснить, являются ли два двоичных значения хешами одного и того же пароля?
например. PWDEncrypt ('abc') = PWDEncrypt ('abc')
Если я могу сделать это, то это значит, что я могу узнать, на скольких пользователей эта ошибка действительно повлияла, вместо того, чтобы иметь дело с тысячами!
РЕДАКТИРОВАТЬ: Чтобы уточнить, PWDEncrypt ('abc') = PWDEncrypt ('abc') НЕ вернет истину, так как пароли хэшируются на разные значения.
Хотя я знаю, что невозможно получить пароль из хэша, PWDCOMPARE ('abc', PWDENCRYPT ('abc')) работает, поэтому внутренне SQL Server должен делать больше, чем просто хешировать сравниваемый пароль и проверьте значения одинаковые.